in24/in32/fl32 little/big-endian QuickTime PCM audio support
[mplayer/glamo.git] / configure
blobef4c4a97e0dd52362b640cd26696ce633c474521
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 aix() { issystem "AIX" ; return "$?" ; }
79 cygwin() { issystem "CYGWIN" ; return "$?" ; }
80 freebsd() { issystem "FreeBSD" ; return "$?" ; }
81 netbsd() { issystem "NetBSD" ; return "$?" ; }
82 bsdos() { issystem "BSD/OS" ; return "$?" ; }
83 openbsd() { issystem "OpenBSD" ; return "$?" ; }
84 bsd() { freebsd || netbsd || bsdos || openbsd ; return "$?" ; }
85 qnx() { issystem "QNX" ; return "$?" ; }
86 darwin() { issystem "Darwin" ; return "$?" ; }
87 gnu() { issystem "GNU" ; return "$?" ; }
88 mingw32() { issystem "MINGW32" ; return "$?" ; }
89 morphos() { issystem "MorphOS" ; return "$?" ; }
90 win32() { cygwin || mingw32 ; return "$?" ; }
91 beos() { issystem "BEOS" ; return "$?" ; }
93 # arch test boolean functions
94 # x86/x86pc is used by QNX
95 x86() {
96 case "$host_arch" in
97 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
98 *) return 1 ;;
99 esac
102 x86_64() {
103 case "$host_arch" in
104 x86_64|amd64) return 0 ;;
105 *) return 1 ;;
106 esac
109 ppc() {
110 case "$host_arch" in
111 ppc) return 0;;
112 *) return 1;;
113 esac
116 alpha() {
117 case "$host_arch" in
118 alpha) return 0;;
119 *) return 1;;
120 esac
123 # not boolean test: implement the posix shell "!" operator for a
124 # non-posix /bin/sh.
125 # usage: not {command}
126 # returns exit status "success" when the execution of "command"
127 # fails.
128 not() {
129 eval "$@"
130 test $? -ne 0
133 # Use this before starting a check
134 echocheck() {
135 echo "============ Checking for $@ ============" >> "$TMPLOG"
136 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
139 # Use this to echo the results of a check
140 echores() {
141 if test "$_res_comment" ; then
142 _res_comment="($_res_comment)"
144 echo "Result is: $@ $_res_comment" >> "$TMPLOG"
145 echo "##########################################" >> "$TMPLOG"
146 echo "" >> "$TMPLOG"
147 echo "$@ $_res_comment"
148 _res_comment=""
150 #############################################################################
152 # Check how echo works in this /bin/sh
153 case `echo -n` in
154 -n) _echo_n= _echo_c='\c' ;; # SysV echo
155 *) _echo_n='-n ' _echo_c= ;; # BSD echo
156 esac
158 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"`
160 for parm in "$@" ; do
161 if test "$parm" = "--help" || test "$parm" = "-help" || test "$parm" = "-h" ; then
162 cat << EOF
164 Usage: $0 [OPTIONS]...
166 Configuration:
167 -h, --help display this help and exit
169 Installation directories:
170 --prefix=DIR use this prefix for installing mplayer [/usr/local]
171 --bindir=DIR use this prefix for installing mplayer binary
172 [PREFIX/bin]
173 --datadir=DIR use this prefix for installing machine independent
174 data files (fonts, skins) [PREFIX/share/mplayer]
175 --mandir=DIR use this prefix for installing manpages [PREFIX/man]
176 --confdir=DIR use this prefix for installing configuration files
177 [PREFIX/etc/mplayer]
178 --libdir=DIR use this prefix for object code libraries [PREFIX/lib]
180 Optional features:
181 --disable-mencoder disable mencoder (a/v encoder) compilation [enable]
182 --enable-gui enable gmplayer compilation (GTK+ GUI) [disable]
183 --enable-old-gtk force using GTK 1.2 for GUI [disable]
184 --enable-largefiles enable support for files > 2 GBytes [disable]
185 --enable-linux-devfs set default devices to devfs ones [disable]
186 --enable-termcap use termcap database for key codes [autodetect]
187 --enable-termios use termios database for key codes [autodetect]
188 --disable-iconv do not use iconv(3) function [autodetect]
189 --disable-setlocale disable setlocale using in mplayer [autodetect]
190 --disable-langinfo do not use langinfo [autodetect]
191 --enable-lirc enable LIRC (remote control) support [autodetect]
192 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
193 --enable-joystick enable joystick support [disable]
194 --disable-vm disable support X video mode extensions [autodetect]
195 --disable-xf86keysym disable support for 'multimedia' keys [autodetect]
196 --disable-tv disable TV Interface (tv/dvb grabbers) [enable]
197 --disable-tv-v4l disable Video4Linux TV Interface support [autodetect]
198 --disable-tv-v4l2 disable Video4Linux2 TV Interface support [autodetect]
199 --disable-tv-bsdbt848 disable BSD BT848 Interface support [autodetect]
200 --disable-edl disable EDL (edit decision list) support [enable]
201 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
202 --disable-network disable network support (for: http/mms/rtp) [enable]
203 --enable-winsock2 enable winsock2 usage [autodetect]
204 --enable-smb enable Samba (SMB) input support [autodetect]
205 --enable-live enable LIVE555 Streaming Media support [autodetect]
206 --disable-dvdread Disable libdvdread support [autodetect]
207 --disable-mpdvdkit Disable mpdvdkit/mpdvdkit2 support [autodetect]
208 --disable-cdparanoia Disable cdparanoia support [autodetect]
209 --disable-freetype Disable freetype2 font rendering support [autodetect]
210 --disable-fontconfig Disable fontconfig font lookup support [autodetect]
211 --disable-unrarlib Disable Unique RAR File Library [enabled]
212 --enable-menu Enable OSD menu support (NOT DVD MENU) [disabled]
213 --disable-sortsub Disable subtitles sorting [enabled]
214 --enable-fribidi Enable using the FriBiDi libs [autodetect]
215 --disable-enca Disable using ENCA charset oracle library [autodetect]
216 --disable-macosx Disable Mac OS X specific features [autodetect]
217 --enable-macosx-finder-support Enable Mac OS X Finder invocation parameter parsing [disabled]
218 --enable-macosx-bundle Enable Mac OS X bundle file locations [autodetect]
219 --disable-inet6 Disable IPv6 support [autodetect]
220 --disable-gethostbyname2 gethostbyname() function is not provided by the C
221 library [autodetect]
222 --disable-ftp Disable ftp support [enabled]
223 --disable-vstream Disable tivo vstream client support [autodetect]
224 --disable-pthreads Disable Posix threads support [autodetect]
226 Codecs:
227 --enable-gif enable gif support [autodetect]
228 --enable-png enable png input/output support [autodetect]
229 --enable-jpeg enable jpeg input/output support [autodetect]
230 --enable-libcdio enable external libcdio support [autodetect]
231 --enable-liblzo enable external liblzo support [autodetect]
232 --disable-win32 disable Win32 DLL support [autodetect]
233 --disable-dshow disable Win32/DirectShow support [autodetect]
234 --disable-qtx disable Quicktime codecs [autodetect]
235 --disable-xanim disable XAnim DLL support [autodetect]
236 --disable-real disable RealPlayer DLL support [autodetect]
237 --disable-xvid disable XviD codec [autodetect]
238 --disable-x264 disable H.264 encoder [autodetect]
239 --disable-divx4linux disable DivX4linux/Divx5linux codec [autodetect]
240 --enable-opendivx enable _old_ OpenDivx codec [disable]
241 --disable-libavcodec disable libavcodec [autodetect]
242 --disable-libavformat disable libavformat [autodetect]
243 --disable-libpostproc disable libpostproc [autodetect]
244 --disable-libavcodec_so disable shared libavcodec [autodetect]
245 --disable-libavformat_so disable shared libavformat [autodetect]
246 --disable-libpostproc_so disable shared libpostproc [autodetect]
247 --enable-libfame enable libfame realtime encoder [autodetect]
248 --disable-internal-tremor do not build internal OggVorbis support [enabled]
249 --enable-tremor-low build with lower accuracy internal tremor [disabled]
250 --enable-external-tremor build with external tremor [disabled]
251 --disable-vorbis disable OggVorbis support entirely [autodetect]
252 --disable-speex disable Speex support [autodetect]
253 --enable-theora build with OggTheora support [autodetect]
254 --disable-internal-matroska disable internal Matroska support [enabled]
255 --enable-external-faad build with external FAAD2 (AAC) support [autodetect]
256 --disable-internal-faad disable internal FAAD2 (AAC) support [autodetect]
257 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
258 --disable-ladspa disable LADSPA plugin support [autodetect]
259 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
260 --disable-mad disable libmad (MPEG audio) support [autodetect]
261 --disable-toolame disable Toolame (MPEG layer 2 audio) support in mencoder [autodetect]
262 --disable-twolame disable Twolame (MPEG layer 2 audio) support in mencoder [autodetect]
263 --enable-xmms build with XMMS inputplugin support [disabled]
264 --disable-mp3lib disable builtin mp3lib [enabled]
265 --disable-liba52 disable builtin liba52 [enabled]
266 --enable-libdts enable libdts support [autodetect]
267 --disable-libmpeg2 disable builtin libmpeg2 [enabled]
268 --disable-musepack disable musepack support [autodetect]
269 --disable-amr_nb disable amr narrowband, floating point [autodetect]
270 --disable-amr_nb-fixed disable amr narrowband, fixed point [autodetect]
271 --disable-amr_wb disable amr wideband, floating point [autodetect]
272 --disable-codec=CODEC disable specified codec
273 --enable-codec=CODEC dnable specified codec
275 Video output:
276 --disable-vidix disable VIDIX [enable on x86 *nix]
277 --enable-gl build with OpenGL render support [autodetect]
278 --enable-dga[=n] build with DGA [n in {1, 2} ] support [autodetect]
279 --enable-vesa build with VESA support [autodetect]
280 --enable-svga build with SVGAlib support [autodetect]
281 --enable-sdl build with SDL render support [autodetect]
282 --enable-aa build with AAlib render support [autodetect]
283 --enable-caca build with CACA render support [autodetect]
284 --enable-ggi build with GGI render support [autodetect]
285 --enable-ggiwmh build with GGI libggiwmh extension [autodetect]
286 --enable-directx build with DirectX support [autodetect]
287 --enable-dxr2 build with DXR2 render support [autodetect]
288 --enable-dxr3 build with DXR3/H+ render support [autodetect]
289 --enable-dvb build with support for output via DVB-Card [autodetect]
290 --enable-dvbhead build with DVB support (HEAD version) [autodetect]
291 --enable-mga build with mga_vid (for Matrox G200/G4x0/G550) support
292 (check for /dev/mga_vid) [autodetect]
293 --enable-xmga build with mga_vid X Window support
294 (check for X & /dev/mga_vid) [autodetect]
295 --enable-xv build with Xv render support for X 4.x [autodetect]
296 --enable-xvmc build with XvMC acceleration for X 4.x [disable]
297 --enable-vm build with XF86VidMode support for X11 [autodetect]
298 --enable-xinerama build with Xinerama support for X11 [autodetect]
299 --enable-x11 build with X11 render support [autodetect]
300 --enable-fbdev build with FBDev render support [autodetect]
301 --enable-mlib build with MLIB support (Solaris only) [autodetect]
302 --enable-3dfx build with obsolete /dev/3dfx support [disable]
303 --enable-tdfxfb build with tdfxfb (Voodoo 3/banshee) support [disable]
304 --enable-directfb build with DirectFB support [autodetect]
305 --enable-zr build with ZR360[56]7/ZR36060 support [autodetect]
306 --enable-bl build with Blinkenlights support [disable]
307 --enable-tdfxvid build with tdfx_vid support [disable]
308 --disable-tga disable targa output support [enable]
309 --disable-pnm disable pnm output support [enable]
310 --disable-md5sum disable md5sum output support [enable]
312 Audio output:
313 --disable-alsa disable ALSA sound support [autodetect]
314 --disable-ossaudio disable OSS sound support [autodetect]
315 --disable-arts disable aRts sound support [autodetect]
316 --disable-esd disable esd sound support [autodetect]
317 --disable-polyp disable Polypaudio sound support [autodetect]
318 --disable-jack disable JACK sound support [autodetect]
319 --disable-openal disable OpenAL sound support [autodetect]
320 --disable-nas disable NAS sound support [autodetect]
321 --disable-sgiaudio disable SGI sound support [autodetect]
322 --disable-sunaudio disable Sun sound support [autodetect]
323 --disable-win32waveout disable Windows waveout sound support [autodetect]
324 --disable-select disable using select() on audio device [enable]
326 Miscellaneous options:
327 --enable-runtime-cpudetection Enable runtime CPU detection [disable]
328 --enable-cross-compile Enable cross-compilation [autodetect]
329 --cc=COMPILER use this C compiler to build MPlayer [gcc]
330 --host-cc=COMPILER use this C compiler to build apps needed for the build process [gcc]
331 --as=ASSEMBLER use this assembler to build MPlayer [as]
332 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
333 --enable-static build a statically linked binary. Set further linking
334 options with --enable-static="-lslang -lncurses"
335 --charset convert the help messages to this charset
336 --language=list a white space or comma separated list of languages
337 for translated man pages, the first language is the
338 primary and therefore used for translated messages
339 and GUI (also the environment variable \$LINGUAS is
340 honored) [en]
341 (Available: $LANGUAGES all)
342 --with-install=PATH use a custom install program (useful if your OS uses
343 a GNU-incompatible install utility by default and
344 you want to use GNU version)
345 --install-path=PATH the path to a custom install program
346 this option is obsolete and will be removed soon,
347 use --with-install instead.
349 Advanced options:
350 --enable-mmx build with MMX support [autodetect]
351 --enable-mmx2 build with MMX2 support (PIII, Athlon) [autodetect]
352 --enable-3dnow build with 3DNow! support [autodetect]
353 --enable-3dnowex build with extended 3DNow! support [autodetect]
354 --enable-sse build with SSE support [autodetect]
355 --enable-sse2 build with SSE2 support [autodetect]
356 --enable-shm build with shm support [autodetect]
357 --enable-altivec build with Altivec support (PowerPC) [autodetect]
358 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy() [enable]
359 --enable-big-endian Force byte order to big-endian [autodetect]
360 --enable-debug[=1-3] compile debugging information into mplayer [disable]
361 --enable-profile compile profiling information into mplayer [disable]
362 --disable-sighandler disable sighandler for crashes [enable]
363 --enable-crash-debug enable automatic gdb attach on crash [disable]
364 --enable-i18n _experimental_ gnu gettext() support [autodetect]
365 --enable-dynamic-plugins Enable support for dynamic a/v plugins [disable]
367 Hazardous options a.k.a. "DO NOT REPORT ANY BUGS!"
368 --disable-gcc-checking disable gcc version checking [enable]
370 Use these options if autodetection fails (Options marked with (*) accept
371 multiple paths separated by ':'):
372 --with-extraincdir=DIR extra headers (png, mad, sdl, ...) in DIR (*)
373 --with-extralibdir=DIR extra library files (png, mad, sdl, ...) in DIR (*)
374 --with-x11incdir=DIR X headers in DIR (*)
375 --with-x11libdir=DIR X library files in DIR (*)
376 --with-dxr2incdir=DIR DXR2 headers in DIR (*)
377 --with-dvbincdir=DIR DVB headers in DIR (*)
378 --with-madlibdir=DIR libmad (libmad shared library) in DIR (*)
379 --with-mlibdir=DIR libmlib (MLIB support) in DIR (Solaris only)
380 --with-codecsdir=DIR Binary codec files in DIR
381 --with-win32libdir=DIR W*ndows DLL files in DIR
382 --with-xanimlibdir=DIR XAnim DLL files in DIR
383 --with-reallibdir=DIR RealPlayer DLL files in DIR
384 --with-xvidlibdir=DIR libxvidcore (XviD) in DIR (*)
385 --with-xvidincdir=DIR XviD header in DIR (*)
386 --with-x264libdir=DIR libx264 in DIR
387 --with-x264incdir=DIR x264 header in DIR
388 --with-dtslibdir=DIR libdts library in DIR (*)
389 --with-dtsincdir=DIR libdts header in DIR (*)
390 --with-livelibdir=DIR LIVE555 Streaming Media libraries in DIR
391 --with-toolamedir=DIR path to Toolame library and include file
392 --with-xmmsplugindir=DIR XMMS plugins in DIR
393 --with-xmmslibdir=DIR libxmms.so.1 in DIR
394 --with-cdparanoiaincdir=DIR cdparanoia headers in DIR (*)
395 --with-cdparanoialibdir=DIR cdparanoia libraries (libcdda_*) in DIR (*)
396 --with-xvmclib=NAME name of adapter-specific library (e.g. XvMCNVIDIA)
397 --with-termcaplib=NAME name of library with termcap functionality
398 name should be given without leading "lib"
399 checks for "termcap" and "tinfo"
401 --with-freetype-config=PATH path to freetype-config
402 (e.g. /opt/bin/freetype-config)
403 --with-fribidi-config=PATH path to fribidi-config
404 (e.g. /opt/bin/fribidi-config)
405 --with-glib-config=PATH path to glib*-config (e.g. /opt/bin/glib-config)
406 --with-gtk-config=PATH path to gtk*-config (e.g. /opt/bin/gtk-config)
407 --with-sdl-config=PATH path to sdl*-config (e.g. /opt/bin/sdl-config)
409 This configure script is NOT autoconf-based, even though its output is similar.
410 It will try to autodetect all configuration options. If you --enable an option
411 it will be forcefully turned on, skipping autodetection. This can break
412 compilation, so you need to know what you are doing.
414 exit 0
416 done # for parm in ...
419 # 1st pass checking for vital options
420 _install=install
421 _ranlib=ranlib
422 _cc=cc
423 test "$CC" && _cc="$CC"
424 _as=auto
425 _runtime_cpudetection=no
426 _cross_compile=auto
427 for ac_option do
428 case "$ac_option" in
429 --target=*)
430 _target=`echo $ac_option | cut -d '=' -f 2`
432 --cc=*)
433 _cc=`echo $ac_option | cut -d '=' -f 2`
435 --host-cc=*)
436 _host_cc=`echo $ac_option | cut -d '=' -f 2`
438 --as=*)
439 _as=`echo $ac_option | cut -d '=' -f 2`
441 --enable-gcc-checking)
442 _skip_cc_check=no
444 --disable-gcc-checking)
445 _skip_cc_check=yes
447 --enable-static)
448 _ld_static='-static'
450 --disable-static)
451 _ld_static=''
453 --enable-static=*)
454 _ld_static="-static `echo $ac_option | cut -d '=' -f 2`"
456 --with-extraincdir=*)
457 _inc_extra=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
459 --with-extralibdir=*)
460 _ld_extra=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
462 --enable-runtime-cpudetection)
463 _runtime_cpudetection=yes
465 --disable-runtime-cpudetection)
466 _runtime_cpudetection=no
468 --enable-cross-compile)
469 _cross_compile=yes
471 --disable-cross-compile)
472 _cross_compile=no
474 --install-path=*)
475 _install=`echo $ac_option | cut -d '=' -f 2 | sed 's/\/$//'`"/install"
477 --with-install=*)
478 _install=`echo $ac_option | cut -d '=' -f 2 `
480 esac
481 done
483 # Determine our OS name and CPU architecture
484 if test -z "$_target" ; then
485 # OS name
486 system_name=`uname -s 2>&1`
487 case "$system_name" in
488 Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU|BeOS|MorphOS|AIX)
490 IRIX*)
491 system_name=IRIX
493 HP-UX*)
494 system_name=HP-UX
496 [cC][yY][gG][wW][iI][nN]*)
497 system_name=CYGWIN
499 MINGW32*)
500 system_name=MINGW32
503 system_name="$system_name-UNKNOWN"
505 esac
508 # host's CPU/instruction set
509 host_arch=`uname -p 2>&1`
510 case "$host_arch" in
511 i386|sparc|ppc|alpha|arm|mips|vax)
513 powerpc) # Darwin returns 'powerpc'
514 host_arch=ppc
516 *) # uname -p on Linux returns 'unknown' for the processor type,
517 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
519 # Maybe uname -m (machine hardware name) returns something we
520 # recognize.
522 # x86/x86pc is used by QNX
523 case "`uname -m 2>&1`" in
524 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 ;;
525 ia64) host_arch=ia64 ;;
526 x86_64|amd64)
527 if [ -n "`$_cc -dumpmachine | sed -n '/^x86_64-/p;/^amd64-/p'`" -a \
528 -z "`echo $CFLAGS | grep -- -m32`" ]; then
529 host_arch=x86_64
530 else
531 host_arch=i386
534 macppc|ppc|ppc64) host_arch=ppc ;;
535 alpha) host_arch=alpha ;;
536 sparc) host_arch=sparc ;;
537 sparc64) host_arch=sparc64 ;;
538 parisc*|hppa*|9000*) host_arch=hppa ;;
539 arm*|zaurus|cats) host_arch=arm ;;
540 s390) host_arch=s390 ;;
541 s390x) host_arch=s390x ;;
542 mips*) host_arch=mips ;;
543 vax) host_arch=vax ;;
544 *) host_arch=UNKNOWN ;;
545 esac
547 esac
548 else # if test -z "$_target"
549 system_name=`echo $_target | cut -d '-' -f 2`
550 case "`echo $system_name | tr A-Z a-z`" in
551 linux) system_name=Linux ;;
552 freebsd) system_name=FreeBSD ;;
553 netbsd) system_name=NetBSD ;;
554 bsd/os) system_name=BSD/OS ;;
555 openbsd) system_name=OpenBSD ;;
556 sunos) system_name=SunOS ;;
557 qnx) system_name=QNX ;;
558 morphos) system_name=MorphOS ;;
559 mingw32msvc) system_name=MINGW32 ;;
560 esac
561 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
562 host_arch=`echo $_target | cut -d '-' -f 1 | tr '_' '-'`
565 echo "Detected operating system: $system_name"
566 echo "Detected host architecture: $host_arch"
568 # LGB: temporary files
569 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
570 test "$I" && break
571 done
573 TMPLOG="configure.log"
574 rm -f "$TMPLOG"
575 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
576 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
577 TMPO="$I/mplayer-conf-$RANDOM-$$.o"
578 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
580 # config files
582 # FIXME: A lot of stuff is installed under /usr/local
583 # NK: But we should never use this stuff implicitly since we call compiler
584 # from /usr we should be sure that there no effects from other compilers
585 # (libraries) which might be installed into /usr/local. Let users use this
586 # stuff explicitly as command line argument. In other words: It would be
587 # resonable to have only /usr/include or only /usr/local/include.
589 if freebsd ; then
590 _ld_extra="$_ld_extra -L/usr/local/lib"
591 _inc_extra="$_inc_extra -I/usr/local/include"
594 if netbsd ; then
595 for I in `echo $_ld_extra | sed 's/-L//g'` ; do
596 tmp="$tmp ` echo $I | sed 's/.*/ -L& -Wl,-R&/'`"
597 done
598 _ld_extra=$tmp
601 _ldd=ldd
602 if darwin; then
603 _ldd="otool -L"
606 if aix ; then
607 _ld_libC="-lC"
608 else
609 _ld_libC=""
612 # Check how to call 'head' and 'tail'. Newer versions spit out warnings
613 # if used as 'head -1' instead of 'head -n 1', but older versions don't
614 # know about '-n'.
615 if test "`(echo line1 ; echo line2) | head -1 2>/dev/null`" = "line1" ; then
616 _head() { head -$1 2>/dev/null ; }
617 else
618 _head() { head -n $1 2>/dev/null ; }
620 if test "`(echo line1 ; echo line2) | tail -1 2>/dev/null`" = "line2" ; then
621 _tail() { tail -$1 2>/dev/null ; }
622 else
623 _tail() { tail -n $1 2>/dev/null ; }
626 # Checking CC version...
627 if test "$_skip_cc_check" != yes ; then
628 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
629 if test "`basename $_cc`" = "icc" || test "`basename $_cc`" = "ecc"; then
630 echocheck "$_cc version"
631 cc_vendor=intel
632 cc_name=`$_cc -V 2>&1 | _head 1 | cut -d ',' -f 1`
633 cc_version=`$_cc -V 2>&1 | _head 1 | cut -d ',' -f 2 | cut -d ' ' -f 3`
634 _cc_major=`echo $cc_version | cut -d '.' -f 1`
635 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
636 # TODO verify older icc/ecc compatibility
637 case $cc_version in
639 cc_version="v. ?.??, bad"
640 cc_verc_fail=yes
642 8.0)
643 cc_version="$cc_version, ok"
644 cc_verc_fail=no
647 cc_version="$cc_version, bad"
648 cc_verc_fail=yes
650 esac
651 echores "$cc_version"
652 else
653 for _cc in "$_cc" gcc gcc-3.4 gcc-3.3 gcc-3.2 gcc-3.1 gcc3 gcc-3.0 cc ; do
654 echocheck "$_cc version"
655 cc_vendor=gnu
656 cc_name=`$_cc -v 2>&1 | _tail 1 | cut -d ' ' -f 1`
657 cc_version=`$_cc -dumpversion 2>&1`
658 if test "$?" -gt 0; then
659 cc_version="not found"
661 case $cc_version in
663 cc_version="v. ?.??, bad"
664 cc_verc_fail=yes
666 2.95.[2-9]|2.95.[2-9][-.]*|[3-4].*)
667 _cc_major=`echo $cc_version | cut -d '.' -f 1`
668 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
669 _cc_mini=`echo $cc_version | cut -d '.' -f 3`
670 cc_version="$cc_version, ok"
671 cc_verc_fail=no
673 'not found')
674 cc_verc_fail=yes
677 cc_version="$cc_version, bad"
678 cc_verc_fail=yes
680 esac
681 echores "$cc_version"
682 test "$cc_verc_fail" = "no" && break
683 done
684 fi # icc
685 if test "$cc_verc_fail" = yes ; then
686 cat <<EOF
688 *** Please downgrade/upgrade C compiler to version gcc-2.95.x or gcc-3.x! ***
690 You are not using a supported compiler. We do not have the time to make sure
691 everything works with compilers other than the ones we use. Use either the
692 same compiler as we do, or use --disable-gcc-checking but DO *NOT* REPORT BUGS
693 unless you can reproduce them after recompiling with a 2.95.x or 3.x version!
695 Note for gcc 2.96 users: Some versions of this compiler are known to miscompile
696 mplayer and lame (which is used for mencoder). If you get compile errors,
697 first upgrade to the latest 2.96 release (minimum 2.96-85) and try again.
698 If the problem still exists, try with gcc 3.x (or 2.95.x) *BEFORE* reporting
699 bugs!
701 GCC 2.96 IS NOT AND WILL NOT BE SUPPORTED BY US !
703 *** For details please read DOCS/HTML/en/users-vs-dev.html ***
706 die "Bad gcc version"
708 else
709 cat <<EOF
711 ******************************************************************************
713 Hmm. You really want to compile MPlayer with an *UNSUPPORTED* C compiler?
714 Ok. You know. Do it. Did you read DOCS/HTML/en/users-vs-dev.html???
716 DO NOT SEND BUGREPORTS OR COMPLAIN, it's *YOUR* compiler's fault!
717 Get ready for mysterious crashes, no-picture bugs, strange noises... REALLY!
718 Lame which is used by mencoder produces weird errors, too.
720 If you have any problem, install a GCC 2.95.x or 3.x version and try again.
721 If the problem _still_ exists, then read DOCS/HTML/en/bugreports.html !
723 *** DO NOT SEND BUG REPORTS OR COMPLAIN it's *YOUR* compiler's fault! ***
725 ******************************************************************************
729 read _answer
732 echocheck "host cc"
733 test "$_host_cc" || _host_cc=$_cc
734 echores $_host_cc
736 echocheck "cross compilation"
737 if test $_cross_compile = auto ; then
738 cat > $TMPC << EOF
739 int main() { return 0; }
741 _cross_compile=yes
742 cc_check && "$TMPO" && _cross_compile=no
744 echores $_cross_compile
746 if test $_cross_compile = yes; then
747 tmp_run() {
748 return 0
752 # ---
754 # now that we know what compiler should be used for compilation, try to find
755 # out which assembler is used by the $_cc compiler
756 if test "$_as" = auto ; then
757 _as=`$_cc -print-prog-name=as`
758 test -z "$_as" && _as=as
761 # XXX: this should be ok..
762 _cpuinfo="echo"
763 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
764 # FIXME: Remove the cygwin check once AMD CPUs are supported
765 if test -r /proc/cpuinfo && not cygwin; then
766 # Linux with /proc mounted, extract CPU information from it
767 _cpuinfo="cat /proc/cpuinfo"
768 elif test -r /compat/linux/proc/cpuinfo && not x86 ; then
769 # FreeBSD with Linux emulation /proc mounted,
770 # extract CPU information from it
771 _cpuinfo="cat /compat/linux/proc/cpuinfo"
772 elif darwin && not x86 ; then
773 # use hostinfo on Darwin
774 _cpuinfo="hostinfo"
775 elif aix; then
776 # use 'lsattr' on AIX
777 _cpuinfo="lsattr -E -l proc0"
778 elif x86; then
779 # all other OSes try to extract CPU information from a small helper
780 # program TOOLS/cpuinfo instead
781 $_cc -o TOOLS/cpuinfo TOOLS/cpuinfo.c
782 _cpuinfo="TOOLS/cpuinfo"
785 x86_exts_check()
787 pparam=`$_cpuinfo | grep 'features' | cut -d ':' -f 2 | _head 1`
788 if test -z "$pparam" ; then
789 pparam=`$_cpuinfo | grep 'flags' | cut -d ':' -f 2 | _head 1`
792 _mmx=no
793 _3dnow=no
794 _3dnowex=no
795 _mmx2=no
796 _sse=no
797 _sse2=no
798 _mtrr=no
800 for i in $pparam ; do
801 case "$i" in
802 3dnow) _3dnow=yes ;;
803 3dnowext) _3dnow=yes _3dnowex=yes ;;
804 mmx) _mmx=yes ;;
805 mmxext) _mmx2=yes ;;
806 mtrr|k6_mtrr|cyrix_arr) _mtrr=yes ;;
807 xmm|sse|kni) _sse=yes _mmx2=yes ;;
808 sse2) _sse2=yes ;;
809 esac
810 done
813 if x86 || x86_64 ; then
814 # gather more CPU information
815 pname=`$_cpuinfo | grep 'model name' | cut -d ':' -f 2 | _head 1`
816 pvendor=`$_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
817 pfamily=`$_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
818 pmodel=`$_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
819 pstepping=`$_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
821 x86_exts_check
823 echocheck "CPU vendor"
824 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
826 echocheck "CPU type"
827 echores "$pname"
830 case "$host_arch" in
831 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
832 _def_arch="#define ARCH_X86 1"
833 _target_arch="TARGET_ARCH_X86 = yes"
836 case "$pvendor" in
837 AuthenticAMD)
838 case "$pfamily" in
839 3) proc=i386 iproc=386 ;;
840 4) proc=i486 iproc=486 ;;
841 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
842 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
843 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
844 proc=k6-3
845 elif test "$pmodel" -ge 8; then
846 proc=k6-2
847 elif test "$pmodel" -ge 6; then
848 proc=k6
849 else
850 proc=i586
851 iproc=586
854 6) iproc=686
855 # It's a bit difficult to determine the correct type of Family 6
856 # AMD CPUs just from their signature. Instead, we check directly
857 # whether it supports SSE.
858 if test "$_sse" = yes; then
859 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
860 proc=athlon-xp
861 else
862 # Again, gcc treats athlon and athlon-tbird similarly.
863 proc=athlon
866 15) iproc=686
867 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
868 # caught and remedied in the optimization tests below.
869 proc=k8
872 *) proc=k8 iproc=686 ;;
873 esac
875 GenuineIntel)
876 case "$pfamily" in
877 3) proc=i386 iproc=386 ;;
878 4) proc=i486 iproc=486 ;;
879 5) iproc=586
880 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
881 proc=pentium-mmx # 4 is desktop, 8 is mobile
882 else
883 proc=i586
886 6) iproc=686
887 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
888 proc=pentium-m
889 elif test "$pmodel" -ge 7; then
890 proc=pentium3
891 elif test "$pmodel" -ge 3; then
892 proc=pentium2
893 else
894 proc=i686
897 15) iproc=686
898 # A nocona in 32-bit mode has no more capabilities than a prescott.
899 if test "$pmodel" -ge 3; then
900 proc=prescott
901 else
902 proc=pentium4
905 *) proc=prescott iproc=686 ;;
906 esac
908 CentaurHauls)
909 case "$pfamily" in
910 5) iproc=586
911 if test "$pmodel" -ge 8; then
912 proc=winchip2
913 elif test "$pmodel" -ge 4; then
914 proc=winchip-c6
915 else
916 proc=i586
919 6) iproc=686
920 if test "$pmodel" -ge 9; then
921 proc=c3-2
922 else
923 proc=c3
924 iproc=586
927 *) proc=i686 iproc=i686 ;;
928 esac
930 unknown)
931 case "$pfamily" in
932 3) proc=i386 iproc=386 ;;
933 4) proc=i486 iproc=486 ;;
934 *) proc=i586 iproc=586 ;;
935 esac
938 proc=i586 iproc=586 ;;
939 esac
941 # check that gcc supports our CPU, if not, fall back to earlier ones
942 # LGB: check -mcpu and -march swithing step by step with enabling
943 # to fall back till 386.
945 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
947 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
948 cpuopt=-mtune
949 else
950 cpuopt=-mcpu
953 echocheck "GCC & CPU optimization abilities"
954 cat > $TMPC << EOF
955 int main(void) { return 0; }
957 if test "$_runtime_cpudetection" = no ; then
958 if test "$proc" = "k8" -o "$proc" = "opteron" -o "$proc" = "athlon64" -o "$proc" = "athlon-fx" ; then
959 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
961 if test "$proc" = "athlon-xp" || test "$proc" = "athlon-4" || test "$proc" = "athlon-tbird"; then
962 cc_check -march=$proc $cpuopt=$proc || proc=athlon
964 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
965 cc_check -march=$proc $cpuopt=$proc || proc=k6
967 if test "$proc" = "k6" || test "$proc" = "c3"; then
968 if not cc_check -march=$proc $cpuopt=$proc; then
969 if cc_check -march=i586 $cpuopt=i686; then
970 proc=i586-i686
971 else
972 proc=i586
976 if test "$proc" = "pentium4" || test "$proc" = "pentium-m" || test "$proc" = "pentium3" || test "$proc" = "pentium2" || test "$proc" = "athlon" || test "$proc" = "c3-2"; then
977 cc_check -march=$proc $cpuopt=$proc || proc=i686
979 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
980 cc_check -march=$proc $cpuopt=$proc || proc=i586
982 if test "$proc" = "i586"; then
983 cc_check -march=$proc $cpuopt=$proc || proc=i486
985 if test "$proc" = "i486" ; then
986 cc_check -march=$proc $cpuopt=$proc || proc=i386
988 if test "$proc" = "i386" ; then
989 cc_check -march=$proc $cpuopt=$proc || proc=error
991 if test "$proc" = "error" ; then
992 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
993 _mcpu=""
994 _march=""
995 _optimizing=""
996 elif test "$proc" = "i586-i686"; then
997 _march="-march=i586"
998 _mcpu="$cpuopt=i686"
999 _optimizing="$proc"
1000 else
1001 _march="-march=$proc"
1002 _mcpu="$cpuopt=$proc"
1003 _optimizing="$proc"
1005 else # if test "$_runtime_cpudetection" = no
1006 # i686 is probably the most common CPU - optimize for it
1007 _mcpu="$cpuopt=i686"
1008 # at least i486 required, for bswap instruction
1009 _march="-march=i486"
1010 cc_check $_mcpu || _mcpu=""
1011 cc_check $_march $_mcpu || _march=""
1014 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1015 ## autodetected mcpu/march parameters
1016 if test "$_target" ; then
1017 # TODO: it may be a good idea to check GCC and fall back in all cases
1018 if test "$host_arch" = "i586-i686"; then
1019 _march="-march=i586"
1020 _mcpu="$cpuopt=i686"
1021 else
1022 _march="-march=$host_arch"
1023 _mcpu="$cpuopt=$host_arch"
1026 proc="$host_arch"
1028 case "$proc" in
1029 i386) iproc=386 ;;
1030 i486) iproc=486 ;;
1031 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1032 i686|athlon*|pentium*) iproc=686 ;;
1033 *) iproc=586 ;;
1034 esac
1037 echores "$proc"
1040 ia64)
1041 _def_arch='#define ARCH_IA64 1'
1042 _target_arch='TARGET_ARCH_IA64 = yes'
1043 iproc='ia64'
1044 proc=''
1045 _march=''
1046 _mcpu=''
1047 _optimizing=''
1050 x86_64|amd64)
1051 _def_arch='#define ARCH_X86_64 1'
1052 _target_arch='TARGET_ARCH_X86_64 = yes'
1053 iproc='x86_64'
1055 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1056 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1057 cpuopt=-mtune
1058 else
1059 cpuopt=-mcpu
1061 case "$pvendor" in
1062 AuthenticAMD)
1063 proc=k8;;
1064 GenuineIntel)
1065 # 64-bit prescotts exist, but as far as GCC is concerned they have the
1066 # same capabilities as a nocona.
1067 proc=nocona;;
1069 proc=error;;
1070 esac
1072 echocheck "GCC & CPU optimization abilities"
1073 cat > $TMPC << EOF
1074 int main(void) { return 0; }
1076 # This is a stripped-down version of the i386 fallback.
1077 if test "$_runtime_cpudetection" = no ; then
1078 # --- AMD processors ---
1079 if test "$proc" = "k8" -o "$proc" = "opteron" -o "$proc" = "athlon64" -o "$proc" = "athlon-fx" ; then
1080 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1082 # This will fail if gcc version < 3.3, which is ok because earlier
1083 # versions don't really support 64-bit on amd64.
1084 # Is this a valid assumption? -Corey
1085 if test "$proc" = "athlon-xp" || test "$proc" = "athlon-4" ; then
1086 cc_check -march=$proc $cpuopt=$proc || proc=error
1088 # --- Intel processors ---
1089 if test "$proc" = "nocona" || test "$proc" = "prescott" ; then
1090 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1092 if test "$proc" = "pentium4" || test "$proc" = "pentium4m" ; then
1093 cc_check -march=$proc $cpuopt=$proc || proc=error
1096 _march="-march=$proc"
1097 _mcpu="$cpuopt=$proc"
1098 if test "$proc" = "error" ; then
1099 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1100 _mcpu=""
1101 _march=""
1103 else
1104 _march=""
1105 _mcpu=""
1108 _optimizing=""
1110 echores "$proc"
1112 x86_exts_check
1115 sparc)
1116 _def_arch='#define ARCH_SPARC 1'
1117 _target_arch='TARGET_ARCH_SPARC = yes'
1118 iproc='sparc'
1119 if sunos ; then
1120 echocheck "CPU type"
1121 karch=`uname -m`
1122 case "`echo $karch`" in
1123 sun4) proc=v7 ;;
1124 sun4c) proc=v7 ;;
1125 sun4d) proc=v8 ;;
1126 sun4m) proc=v8 ;;
1127 sun4u) proc=v9 _vis='yes' _def_vis='#define HAVE_VIS = yes' ;;
1128 *) ;;
1129 esac
1130 echores "$proc"
1131 else
1132 proc=v8
1134 _march=''
1135 _mcpu="-mcpu=$proc"
1136 _optimizing="$proc"
1139 sparc64)
1140 _def_arch='#define ARCH_SPARC 1'
1141 _target_arch='TARGET_ARCH_SPARC = yes'
1142 _vis='yes'
1143 _def_vis='#define HAVE_VIS = yes'
1144 iproc='sparc'
1145 proc='v9'
1146 _march=''
1147 _mcpu="-mcpu=$proc"
1148 _optimizing="$proc"
1151 arm|armv4l|armv5tel)
1152 _def_arch='#define ARCH_ARMV4L 1'
1153 _target_arch='TARGET_ARCH_ARMV4L = yes'
1154 iproc='arm'
1155 proc=''
1156 _march=''
1157 _mcpu=''
1158 _optimizing=''
1161 ppc)
1162 _def_arch='#define ARCH_POWERPC 1'
1163 _def_dcbzl='#define NO_DCBZL 1'
1164 _target_arch='TARGET_ARCH_POWERPC = yes'
1165 iproc='ppc'
1166 proc=''
1167 _march=''
1168 _mcpu=''
1169 _optimizing=''
1170 _altivec=no
1172 echocheck "CPU type"
1173 case $system_name in
1174 Linux)
1175 proc=`$_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | _head 1`
1176 if test -n "`$_cpuinfo | grep altivec`"; then
1177 _altivec=yes
1180 Darwin)
1181 proc=`$_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//'`
1182 if [ `sysctl -n hw.vectorunit` -eq 1 -o \
1183 "`sysctl -n hw.optional.altivec 2>/dev/null`" -eq 1 ]; then
1184 _altivec=yes
1187 NetBSD)
1188 # only gcc 3.4 works reliably with AltiVec code under NetBSD
1189 case $cc_version in
1190 2*|3.0*|3.1*|3.2*|3.3*)
1193 if [ `sysctl -n machdep.altivec` -eq 1 ]; then
1194 _altivec=yes
1197 esac
1199 AIX)
1200 proc=`$_cpuinfo | grep 'type' | cut -f 7 -d ' ' | sed 's/PowerPC_//'`
1202 esac
1203 if test "$_altivec" = yes; then
1204 echores "$proc altivec"
1205 else
1206 echores "$proc"
1209 echocheck "GCC & CPU optimization abilities"
1211 if test -n "$proc"; then
1212 case "$proc" in
1213 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
1214 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
1215 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
1216 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
1217 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
1218 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
1219 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
1220 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
1221 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
1222 *) ;;
1223 esac
1224 # gcc 3.1(.1) and up supports 7400 and 7450
1225 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
1226 case "$proc" in
1227 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
1228 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
1229 *) ;;
1230 esac
1232 # gcc 3.2 and up supports 970
1233 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
1234 case "$proc" in
1235 970*) _march='-mcpu=970' _mcpu='-mtune=970'
1236 _def_dcbzl='#undef NO_DCBZL' ;;
1237 *) ;;
1238 esac
1240 # gcc 3.3 and up supports POWER4
1241 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
1242 case "$proc" in
1243 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
1244 *) ;;
1245 esac
1247 # gcc 4.0 and up supports POWER5
1248 if test "$_cc_major" -ge "4"; then
1249 case "$proc" in
1250 POWER5) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
1251 *) ;;
1252 esac
1256 if test -n "$_mcpu"; then
1257 _optimizing=`echo $_mcpu | cut -c 8-`
1258 echores "$_optimizing"
1259 else
1260 echores "none"
1265 alpha)
1266 _def_arch='#define ARCH_ALPHA 1'
1267 _target_arch='TARGET_ARCH_ALPHA = yes'
1268 iproc='alpha'
1269 _march=''
1271 echocheck "CPU type"
1272 cat > $TMPC << EOF
1273 int main() {
1274 unsigned long ver, mask;
1275 asm ("implver %0" : "=r" (ver));
1276 asm ("amask %1, %0" : "=r" (mask) : "r" (-1));
1277 printf("%ld-%x\n", ver, ~mask);
1278 return 0;
1281 $_cc -o "$TMPO" "$TMPC"
1282 case `"$TMPO"` in
1284 0-0) proc="ev4"; cpu_understands_mvi="0";;
1285 1-0) proc="ev5"; cpu_understands_mvi="0";;
1286 1-1) proc="ev56"; cpu_understands_mvi="0";;
1287 1-101) proc="pca56"; cpu_understands_mvi="1";;
1288 2-303) proc="ev6"; cpu_understands_mvi="1";;
1289 2-307) proc="ev67"; cpu_understands_mvi="1";;
1290 2-1307) proc="ev68"; cpu_understands_mvi="1";;
1291 esac
1292 echores "$proc"
1294 echocheck "GCC & CPU optimization abilities"
1295 if test "$proc" = "ev68" ; then
1296 cc_check -mcpu=$proc || proc=ev67
1298 if test "$proc" = "ev67" ; then
1299 cc_check -mcpu=$proc || proc=ev6
1301 _mcpu="-mcpu=$proc"
1302 echores "$proc"
1304 _optimizing="$proc"
1306 echocheck "MVI instruction support in GCC"
1307 if test "$_cc_major" -ge "3" && test "$cpu_understands_mvi" = "1" ; then
1308 _def_gcc_mvi_support="#define CAN_COMPILE_ALPHA_MVI 1"
1309 echores "yes"
1310 else
1311 _def_gcc_mvi_support="#undef CAN_COMPILE_ALPHA_MVI"
1312 echores "no, GCC = `$_cc -dumpversion 2>&1` (must be >= 3), CPU = $proc (must be pca56 or later)"
1316 mips)
1317 _def_arch='#define ARCH_SGI_MIPS 1'
1318 _target_arch='TARGET_ARCH_SGI_MIPS = yes'
1319 iproc='sgi-mips'
1320 proc=''
1321 _march=''
1322 _mcpu=''
1323 _optimizing=''
1325 if irix ; then
1326 echocheck "CPU type"
1327 proc=`hinv -c processor | grep CPU | cut -d " " -f3`
1328 case "`echo $proc`" in
1329 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
1330 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
1331 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
1332 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
1333 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
1334 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
1335 esac
1336 echores "$proc"
1341 hppa)
1342 _def_arch='#define ARCH_PA_RISC 1'
1343 _target_arch='TARGET_ARCH_PA_RISC = yes'
1344 iproc='PA-RISC'
1345 proc=''
1346 _march=''
1347 _mcpu=''
1348 _optimizing=''
1351 s390)
1352 _def_arch='#define ARCH_S390 1'
1353 _target_arch='TARGET_ARCH_S390 = yes'
1354 iproc='390'
1355 proc=''
1356 _march=''
1357 _mcpu=''
1358 _optimizing=''
1361 s390x)
1362 _def_arch='#define ARCH_S390X 1'
1363 _target_arch='TARGET_ARCH_S390X = yes'
1364 iproc='390x'
1365 proc=''
1366 _march=''
1367 _mcpu=''
1368 _optimizing=''
1371 vax)
1372 _def_arch='#define ARCH_VAX 1'
1373 _target_arch='TARGET_ARCH_VAX = yes'
1374 iproc='vax'
1375 proc=''
1376 _march=''
1377 _mcpu=''
1378 _optimizing=''
1382 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
1383 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
1384 die "unsupported architecture $host_arch"
1386 esac # case "$host_arch" in
1388 if test "$_runtime_cpudetection" = yes ; then
1389 if x86; then
1390 _mmx=yes
1391 _3dnow=yes
1392 _3dnowex=yes
1393 _mmx2=yes
1394 _sse=yes
1395 _sse2=yes
1396 _mtrr=yes
1398 if ppc; then
1399 _altivec=yes
1403 if x86 && test "$_runtime_cpudetection" = no ; then
1404 extcheck() {
1405 if test "$1" = yes ; then
1406 echocheck "kernel support of $2"
1407 cat > $TMPC <<EOF
1408 #include <signal.h>
1409 void catch() { exit(1); }
1410 int main(void){
1411 signal(SIGILL, catch);
1412 __asm__ __volatile__ ("$3":::"memory");return(0);
1416 if cc_check && tmp_run ; then
1417 echores "yes"
1418 _optimizing="$_optimizing $2"
1419 return 0
1420 else
1421 echores "failed"
1422 echo "It seems that your kernel does not correctly support $2."
1423 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1424 return 1
1427 return 0
1430 extcheck $_mmx "mmx" "emms" || _mmx=no
1431 extcheck $_mmx2 "mmx2" "sfence" || _mmx2=no
1432 extcheck $_3dnow "3dnow" "femms" || _3dnow=no
1433 extcheck $_3dnowex "3dnowex" "pswapd %%mm0, %%mm0" || _3dnowex=no
1434 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _sse=no _gcc3_ext="$_gcc3_ext -mno-sse"
1435 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _sse2=no _gcc3_ext="$_gcc3_ext -mno-sse2"
1436 echocheck "mtrr support"
1437 echores "$_mtrr"
1439 if test "$_mtrr" = yes ; then
1440 _optimizing="$_optimizing mtrr"
1443 if test "$_gcc3_ext" != ""; then
1444 # if we had to disable sse/sse2 because the active kernel does not
1445 # support this instruction set extension, we also have to tell
1446 # gcc3 to not generate sse/sse2 instructions for normal C code
1447 cat > $TMPC << EOF
1448 int main(void) { return 0; }
1450 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1455 echocheck "assembler support of -pipe option"
1456 cat > $TMPC << EOF
1457 int main(void) { return 0; }
1459 cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no"
1461 _prefix="/usr/local"
1463 # GOTCHA: the variables below defines the default behavior for autodetection
1464 # and have - unless stated otherwise - at least 2 states : yes no
1465 # If autodetection is available then the third state is: auto
1466 _libavcodec=auto
1467 _amr_nb=auto
1468 _amr_nb_fixed=auto
1469 _amr_wb=auto
1470 _libavcodecs=`grep 'register_avcodec(&[a-z]' libavcodec/allcodecs.c | sed 's/.*&\(.*\)).*/\1/'`
1471 _libavcodec_so=auto
1472 _libavformat=auto
1473 _libavformat_so=auto
1474 _libpostproc=auto
1475 _libpostproc_so=auto
1476 _fame=auto
1477 _mp1e=no
1478 _mencoder=yes
1479 _x11=auto
1480 _dga=auto # 1 2 no auto
1481 _xv=auto
1482 _xvmc=no #auto when complete
1483 _sdl=auto
1484 _directx=auto
1485 _win32waveout=auto
1486 _nas=auto
1487 _png=auto
1488 _jpg=auto
1489 _pnm=yes
1490 _md5sum=yes
1491 _gif=auto
1492 _gl=auto
1493 _ggi=auto
1494 _ggiwmh=auto
1495 _aa=auto
1496 _caca=auto
1497 _svga=auto
1498 _vesa=auto
1499 _fbdev=auto
1500 _dvb=auto
1501 _dvbhead=auto
1502 _dxr2=auto
1503 _dxr3=auto
1504 _iconv=auto
1505 _langinfo=auto
1506 _rtc=auto
1507 _ossaudio=auto
1508 _arts=auto
1509 _esd=auto
1510 _polyp=auto
1511 _jack=auto
1512 _openal=auto
1513 _libcdio=auto
1514 _liblzo=auto
1515 _mad=auto
1516 _toolame=auto
1517 _twolame=auto
1518 _tremor_internal=yes
1519 _tremor_low=no
1520 _vorbis=auto
1521 _speex=auto
1522 _theora=auto
1523 _mp3lib=yes
1524 _liba52=yes
1525 _libdts=auto
1526 _libmpeg2=yes
1527 _matroska_internal=yes
1528 _tremor=no
1529 _faad_internal=auto
1530 _faad_external=auto
1531 _faac=auto
1532 _ladspa=auto
1533 _xmms=no
1534 _have_dvd=no
1535 # dvdnav disabled, it does not work
1536 #_dvdnav=no
1537 _dvdread=auto
1538 _dvdkit=auto
1539 _xanim=auto
1540 _real=auto
1541 _live=auto
1542 _xinerama=auto
1543 _mga=auto
1544 _xmga=auto
1545 _vm=auto
1546 _xf86keysym=auto
1547 _mlib=auto
1548 _sgiaudio=auto
1549 _sunaudio=auto
1550 _alsa=auto
1551 _fastmemcpy=yes
1552 _unrarlib=yes
1553 _win32=auto
1554 _dshow=yes
1555 _select=yes
1556 _tv=yes
1557 _tv_v4l=auto
1558 _tv_v4l2=auto
1559 _tv_bsdbt848=auto
1560 _edl=yes
1561 _network=yes
1562 _winsock2=auto
1563 _smbsupport=auto
1564 _vidix=auto
1565 _joystick=no
1566 _xvid=auto
1567 _x264=auto
1568 _divx4linux=auto
1569 _opendivx=no
1570 _lirc=auto
1571 _lircc=auto
1572 _gui=no
1573 _gtk1=no
1574 _termcap=auto
1575 _termios=auto
1576 _3dfx=no
1577 _tdfxfb=no
1578 _tdfxvid=no
1579 _tga=yes
1580 _directfb=auto
1581 _zr=auto
1582 _bl=no
1583 _largefiles=no
1584 #_language=en
1585 _shm=auto
1586 _linux_devfs=no
1587 #_charset=utf8
1588 _i18n=auto
1589 _dynamic_plugins=no
1590 _crash_debug=auto
1591 _sighandler=yes
1592 _libdv=auto
1593 _cdparanoia=auto
1594 _big_endian=auto
1595 _freetype=auto
1596 _fontconfig=auto
1597 _menu=no
1598 _qtx=auto
1599 _macosx=auto
1600 _macosx_finder_support=no
1601 _macosx_bundle=auto
1602 _sortsub=yes
1603 _freetypeconfig='freetype-config'
1604 _fribidi=auto
1605 _fribidiconfig='fribidi-config'
1606 _enca=auto
1607 _inet6=auto
1608 _gethostbyname2=auto
1609 _ftp=yes
1610 _musepack=auto
1611 _vstream=auto
1612 _pthreads=yes
1613 for ac_option do
1614 case "$ac_option" in
1615 # Skip 1st pass
1616 --target=*) ;;
1617 --cc=*) ;;
1618 --host-cc=*) ;;
1619 --as=*) ;;
1620 --enable-gcc-checking) ;;
1621 --disable-gcc-checking) ;;
1622 --enable-static*) ;;
1623 --disable-static*) ;;
1624 --with-extraincdir=*) ;;
1625 --with-extralibdir=*) ;;
1626 --enable-runtime-cpudetection) ;;
1627 --disable-runtime-cpudetection) ;;
1628 --enable-cross-compile) ;;
1629 --disable-cross-compile) ;;
1630 --install-path=*) ;;
1631 --with-install=*) ;;
1633 # Real 2nd pass
1634 --enable-mencoder) _mencoder=yes ;;
1635 --disable-mencoder) _mencoder=no ;;
1636 --enable-i18n) _i18n=yes ;;
1637 --disable-i18n) _i18n=no ;;
1638 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
1639 --disable-dynamic-plugins) _dynamic_plugins=no ;;
1640 --enable-x11) _x11=yes ;;
1641 --disable-x11) _x11=no ;;
1642 --enable-xv) _xv=yes ;;
1643 --disable-xv) _xv=no ;;
1644 --enable-xvmc) _xvmc=yes ;;
1645 --disable-xvmc) _xvmc=no ;;
1646 --enable-sdl) _sdl=yes ;;
1647 --disable-sdl) _sdl=no ;;
1648 --enable-directx) _directx=yes ;;
1649 --disable-directx) _directx=no ;;
1650 --enable-win32waveout) _win32waveout=yes ;;
1651 --disable-win32waveout) _win32waveout=no ;;
1652 --enable-nas) _nas=yes ;;
1653 --disable-nas) _nas=no ;;
1654 --enable-png) _png=yes ;;
1655 --disable-png) _png=no ;;
1656 --enable-jpeg) _jpg=yes ;;
1657 --disable-jpeg) _jpg=no ;;
1658 --enable-pnm) _pnm=yes ;;
1659 --disable-pnm) _pnm=no ;;
1660 --enable-md5sum) _md5sum=yes ;;
1661 --disable-md5sum) _md5sum=no ;;
1662 --enable-gif) _gif=yes ;;
1663 --disable-gif) _gif=no ;;
1664 --enable-gl) _gl=yes ;;
1665 --disable-gl) _gl=no ;;
1666 --enable-ggi) _ggi=yes ;;
1667 --disable-ggi) _ggi=no ;;
1668 --enable-ggiwmh) _ggiwmh=yes ;;
1669 --disable-ggiwmh) _ggiwmh=no ;;
1670 --enable-aa) _aa=yes ;;
1671 --disable-aa) _aa=no ;;
1672 --enable-caca) _caca=yes ;;
1673 --disable-caca) _caca=no ;;
1674 --enable-svga) _svga=yes ;;
1675 --disable-svga) _svga=no ;;
1676 --enable-vesa) _vesa=yes ;;
1677 --disable-vesa) _vesa=no ;;
1678 --enable-fbdev) _fbdev=yes ;;
1679 --disable-fbdev) _fbdev=no ;;
1680 --enable-dvb) _dvb=yes ;;
1681 --disable-dvb) _dvb=no ;;
1682 --enable-dvbhead) _dvbhead=yes ;;
1683 --disable-dvbhead) _dvbhead=no ;;
1684 --enable-dxr2) _dxr2=yes ;;
1685 --disable-dxr2) _dxr2=no ;;
1686 --enable-dxr3) _dxr3=yes ;;
1687 --disable-dxr3) _dxr3=no ;;
1688 --enable-iconv) _iconv=yes ;;
1689 --disable-iconv) _iconv=no ;;
1690 --enable-langinfo) _langinfo=yes ;;
1691 --disable-langinfo) _langinfo=no ;;
1692 --enable-rtc) _rtc=yes ;;
1693 --disable-rtc) _rtc=no ;;
1694 --enable-mp1e) _mp1e=yes ;;
1695 --disable-mp1e) _mp1e=no ;;
1696 --enable-libdv) _libdv=yes ;;
1697 --disable-libdv) _libdv=no ;;
1698 --enable-ossaudio) _ossaudio=yes ;;
1699 --disable-ossaudio) _ossaudio=no ;;
1700 --enable-arts) _arts=yes ;;
1701 --disable-arts) _arts=no ;;
1702 --enable-esd) _esd=yes ;;
1703 --disable-esd) _esd=no ;;
1704 --enable-polyp) _polyp=yes ;;
1705 --disable-polyp) _polyp=no ;;
1706 --enable-jack) _jack=yes ;;
1707 --disable-jack) _jack=no ;;
1708 --enable-openal) _openal=yes ;;
1709 --disable-openal) _openal=no ;;
1710 --enable-mad) _mad=yes ;;
1711 --disable-mad) _mad=no ;;
1712 --disable-toolame) _toolame=no ;;
1713 --disable-twolame) _twolame=no ;;
1714 --enable-libcdio) _libcdio=yes ;;
1715 --disable-libcdio) _libcdio=no ;;
1716 --enable-liblzo) _liblzo=yes ;;
1717 --disable-liblzo) _liblzo=no ;;
1718 --enable-vorbis) _vorbis=yes ;;
1719 --disable-vorbis) _vorbis=no ;;
1720 --enable-speex) _speex=yes ;;
1721 --disable-speex) _speex=no ;;
1722 --enable-internal-tremor) _tremor_internal=yes ;;
1723 --disable-internal-tremor) _tremor_internal=no ;;
1724 --enable-tremor-low) _tremor_low=yes ;;
1725 --disable-tremor-low) _tremor_low=no ;;
1726 --enable-external-tremor) _tremor=yes ;;
1727 --disable-external-tremor) _tremor=no ;;
1728 --enable-theora) _theora=yes ;;
1729 --disable-theora) _theora=no ;;
1730 --enable-mp3lib) _mp3lib=yes ;;
1731 --disable-mp3lib) _mp3lib=no ;;
1732 --enable-liba52) _liba52=yes ;;
1733 --disable-liba52) _liba52=no ;;
1734 --enable-libdts) _libdts=yes ;;
1735 --disable-libdts) _libdts=no ;;
1736 --enable-libmpeg2) _libmpeg2=yes ;;
1737 --disable-libmpeg2) _libmpeg2=no ;;
1738 --enable-musepack) _musepack=yes ;;
1739 --disable-musepack) _musepack=no ;;
1740 --enable-internal-matroska) _matroska_internal=yes ;;
1741 --disable-internal-matroska) _matroska_internal=no ;;
1742 --enable-internal-faad) _faad_internal=yes _faad_external=no ;;
1743 --disable-internal-faad) _faad_internal=no ;;
1744 --enable-external-faad) _faad_external=yes _faad_internal=no ;;
1745 --disable-external-faad) _faad_external=no ;;
1746 --enable-faac) _faac=yes ;;
1747 --disable-faac) _faac=no ;;
1748 --enable-ladspa) _ladspa=yes ;;
1749 --disable-ladspa) _ladspa=no ;;
1750 --enable-xmms) _xmms=yes ;;
1751 --disable-xmms) _xmms=no ;;
1752 --enable-dvdread) _dvdread=yes ;;
1753 --disable-dvdread) _dvdread=no ;;
1754 --enable-mpdvdkit) _dvdkit=yes ;;
1755 --disable-mpdvdkit) _dvdkit=no ;;
1756 # dvdnav disabled, it does not work
1757 # --enable-dvdnav) _dvdnav=yes ;;
1758 # --disable-dvdnav) _dvdnav=no ;;
1759 --enable-xanim) _xanim=yes ;;
1760 --disable-xanim) _xanim=no ;;
1761 --enable-real) _real=yes ;;
1762 --disable-real) _real=no ;;
1763 --enable-live) _live=yes ;;
1764 --disable-live) _live=no ;;
1765 --enable-xinerama) _xinerama=yes ;;
1766 --disable-xinerama) _xinerama=no ;;
1767 --enable-mga) _mga=yes ;;
1768 --disable-mga) _mga=no ;;
1769 --enable-xmga) _xmga=yes ;;
1770 --disable-xmga) _xmga=no ;;
1771 --enable-vm) _vm=yes ;;
1772 --disable-vm) _vm=no ;;
1773 --enable-xf86keysym) _xf86keysym=yes ;;
1774 --disable-xf86keysym) _xf86keysym=no ;;
1775 --enable-mlib) _mlib=yes ;;
1776 --disable-mlib) _mlib=no ;;
1777 --enable-sunaudio) _sunaudio=yes ;;
1778 --disable-sunaudio) _sunaudio=no ;;
1779 --enable-sgiaudio) _sgiaudio=yes ;;
1780 --disable-sgiaudio) _sgiaudio=no ;;
1781 --enable-alsa) _alsa=yes ;;
1782 --disable-alsa) _alsa=no ;;
1783 --enable-tv) _tv=yes ;;
1784 --disable-tv) _tv=no ;;
1785 --enable-edl) _edl=yes ;;
1786 --disable-edl) _edl=no ;;
1787 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1788 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1789 --enable-tv-v4l) _tv_v4l=yes ;;
1790 --disable-tv-v4l) _tv_v4l=no ;;
1791 --enable-tv-v4l2) _tv_v4l2=yes ;;
1792 --disable-tv-v4l2) _tv_v4l2=no ;;
1793 --enable-fastmemcpy) _fastmemcpy=yes ;;
1794 --disable-fastmemcpy) _fastmemcpy=no ;;
1795 --enable-network) _network=yes ;;
1796 --disable-network) _network=no ;;
1797 --enable-winsock2) _winsock2=yes ;;
1798 --disable-winsock2) _winsock2=no ;;
1799 --enable-smb) _smbsupport=yes ;;
1800 --disable-smb) _smbsupport=no ;;
1801 --enable-vidix) _vidix=yes ;;
1802 --disable-vidix) _vidix=no ;;
1803 --enable-joystick) _joystick=yes ;;
1804 --disable-joystick) _joystick=no ;;
1805 --enable-xvid) _xvid=yes ;;
1806 --disable-xvid) _xvid=no ;;
1807 --enable-x264) _x264=yes ;;
1808 --disable-x264) _x264=no ;;
1809 --enable-divx4linux) _divx4linux=yes ;;
1810 --disable-divx4linux) _divx4linux=no ;;
1811 --enable-opendivx) _opendivx=yes ;;
1812 --disable-opendivx) _opendivx=no ;;
1813 --enable-libavcodec) _libavcodec=yes ;;
1814 --disable-libavcodec) _libavcodec=no ;;
1815 --enable-libavcodec_so) _libavcodec_so=yes ;;
1816 --disable-libavcodec_so) _libavcodec_so=no ;;
1817 --enable-amr_nb) _amr_nb=yes ;;
1818 --disable-amr_nb) _amr_nb=no ;;
1819 --enable-amr_nb-fixed) _amr_nb_fixed=yes ;;
1820 --disable-amr_nb-fixed) _amr_nb_fixed=no ;;
1821 --enable-amr_wb) _amr_wb=yes ;;
1822 --disable-amr_wb) _amr_wb=no ;;
1823 --enable-codec=*) _libavcodecs="$_libavcodecs `echo $ac_option | cut -d '=' -f 2`" ;;
1824 --disable-codec=*) _libavcodecs=`echo $_libavcodecs | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;;
1825 --enable-libavformat) _libavformat=yes;;
1826 --disable-libavformat) _libavformat=no ;;
1827 --enable-libavformat_so) _libavformat_so=yes ;;
1828 --disable-libavformat_so) _libavformat_so=no ;;
1829 --enable-libpostproc) _libpostproc=yes ;;
1830 --disable-libpostproc) _libpostproc=no ;;
1831 --enable-libpostproc_so) _libpostproc_so=yes ;;
1832 --disable-libpostproc_so) _libpostproc_so=no ;;
1833 --enable-libfame) _fame=yes ;;
1834 --disable-libfame) _fame=no ;;
1835 --enable-lirc) _lirc=yes ;;
1836 --disable-lirc) _lirc=no ;;
1837 --enable-lircc) _lircc=yes ;;
1838 --disable-lircc) _lircc=no ;;
1839 --enable-gui) _gui=yes ;;
1840 --disable-gui) _gui=no ;;
1841 --enable-old-gtk) _gtk1=yes ;;
1842 --enable-termcap) _termcap=yes ;;
1843 --disable-termcap) _termcap=no ;;
1844 --enable-termios) _termios=yes ;;
1845 --disable-termios) _termios=no ;;
1846 --enable-3dfx) _3dfx=yes ;;
1847 --disable-3dfx) _3dfx=no ;;
1848 --enable-tdfxfb) _tdfxfb=yes ;;
1849 --disable-tdfxvid) _tdfxvid=no ;;
1850 --enable-tdfxvid) _tdfxvid=yes ;;
1851 --disable-tga) _tga=no ;;
1852 --enable-tga) _tga=yes ;;
1853 --disable-tdfxfb) _tdfxfb=no ;;
1854 --enable-directfb) _directfb=yes ;;
1855 --disable-directfb) _directfb=no ;;
1856 --enable-zr) _zr=yes ;;
1857 --disable-zr) _zr=no ;;
1858 --enable-bl) _bl=yes ;;
1859 --disable-bl) _bl=no ;;
1860 --enable-mtrr) _mtrr=yes ;;
1861 --disable-mtrr) _mtrr=no ;;
1862 --enable-largefiles) _largefiles=yes ;;
1863 --disable-largefiles) _largefiles=no ;;
1864 --enable-shm) _shm=yes ;;
1865 --disable-shm) _shm=no ;;
1866 --enable-select) _select=yes ;;
1867 --disable-select) _select=no ;;
1868 --enable-linux-devfs) _linux_devfs=yes ;;
1869 --disable-linux-devfs) _linux_devfs=no ;;
1870 --enable-cdparanoia) _cdparanoia=yes ;;
1871 --disable-cdparanoia) _cdparanoia=no ;;
1872 --enable-big-endian) _big_endian=yes ;;
1873 --disable-big-endian) _big_endian=no ;;
1874 --enable-freetype) _freetype=yes ;;
1875 --disable-freetype) _freetype=no ;;
1876 --enable-fontconfig) _fontconfig=yes ;;
1877 --disable-fontconfig) _fontconfig=no ;;
1878 --enable-unrarlib) _unrarlib=yes ;;
1879 --disable-unrarlib) _unrarlib=no ;;
1880 --enable-ftp) _ftp=yes ;;
1881 --disable-ftp) _ftp=no ;;
1882 --enable-vstream) _vstream=yes ;;
1883 --disable-vstream) _vstream=no ;;
1884 --enable-pthreads) _pthreads=yes ;;
1885 --disable-pthreads) _pthreads=no ;;
1887 --enable-fribidi) _fribidi=yes ;;
1888 --disable-fribidi) _fribidi=no ;;
1890 --enable-enca) _enca=yes ;;
1891 --disable-enca) _enca=no ;;
1893 --enable-inet6) _inet6=yes ;;
1894 --disable-inet6) _inet6=no ;;
1896 --enable-gethostbyname2) _gethostbyname2=yes ;;
1897 --disable-gethostbyname2) _gethostbyname2=no ;;
1899 --enable-dga) _dga=auto ;; # as we don't know if it's 1 or 2
1900 --enable-dga=*) _dga=`echo $ac_option | cut -d '=' -f 2` ;;
1901 --disable-dga) _dga=no ;;
1903 --enable-menu) _menu=yes ;;
1904 --disable-menu) _menu=no ;;
1906 --enable-qtx) _qtx=yes ;;
1907 --disable-qtx) _qtx=no ;;
1909 --enable-macosx) _macosx=yes ;;
1910 --disable-macosx) _macosx=no ;;
1911 --enable-macosx-finder-support) _macosx_finder_support=yes ;;
1912 --disable-macosx-finder-support) _macosx_finder_support=no ;;
1913 --enable-macosx-bundle) _macosx_bundle=yes;;
1914 --disable-macosx-bundle) _macosx_bundle=no;;
1916 --enable-sortsub) _sortsub=yes ;;
1917 --disable-sortsub) _sortsub=no ;;
1919 --charset=*)
1920 _charset=`echo $ac_option | cut -d '=' -f 2`
1922 --language=*)
1923 _language=`echo $ac_option | cut -d '=' -f 2`
1925 # dvdnav disabled, it does not work
1926 # --with-libdvdnav=*)
1927 # _dvdnavdir=`echo $ac_option | cut -d '=' -f 2`
1928 # _dvdnav=yes
1929 # ;;
1931 --with-codecsdir=*)
1932 _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1933 _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1934 _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1936 --with-win32libdir=*)
1937 _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1938 _win32=yes
1940 --with-xanimlibdir=*)
1941 _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1942 _xanim=yes
1944 --with-reallibdir=*)
1945 _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1946 _real=yes
1948 --with-livelibdir=*)
1949 _livelibdir=`echo $ac_option | cut -d '=' -f 2`
1951 --with-toolamedir=*)
1952 _toolamedir=`echo $ac_option | cut -d '=' -f 2`
1954 --with-mlibdir=*)
1955 _mlibdir=`echo $ac_option | cut -d '=' -f 2`
1956 _mlib=yes
1959 --with-xmmslibdir=*)
1960 _xmmslibdir=`echo $ac_option | cut -d '=' -f 2`
1963 --with-xmmsplugindir=*)
1964 _xmmsplugindir=`echo $ac_option | cut -d '=' -f 2`
1967 --enable-profile)
1968 _profile='-p'
1970 --disable-profile)
1971 _profile=
1973 --enable-debug)
1974 _debug='-g'
1976 --enable-debug=*)
1977 _debug=`echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2`
1979 --disable-debug)
1980 _debug=
1982 --enable-crash-debug)
1983 _crash_debug=yes
1985 --disable-crash-debug)
1986 _crash_debug=no
1988 --enable-sighandler)
1989 _sighandler=yes
1991 --disable-sighandler)
1992 _sighandler=no
1995 --enable-sse) _sse=yes ;;
1996 --disable-sse) _sse=no ;;
1997 --enable-sse2) _sse2=yes ;;
1998 --disable-sse2) _sse2=no ;;
1999 --enable-mmx2) _mmx2=yes ;;
2000 --disable-mmx2) _mmx2=no ;;
2001 --enable-3dnow) _3dnow=yes ;;
2002 --disable-3dnow) _3dnow=no _3dnowex=no ;;
2003 --enable-3dnowex) _3dnow=yes _3dnowex=yes ;;
2004 --disable-3dnowex) _3dnowex=no ;;
2005 --enable-altivec) _altivec=yes ;;
2006 --disable-altivec) _altivec=no ;;
2007 --enable-mmx) _mmx=yes ;;
2008 --disable-mmx) # 3Dnow! and MMX2 require MMX
2009 _3dnow=no _3dnowex=no _mmx=no _mmx2=no ;;
2011 --enable-win32) _win32=yes ;;
2012 --disable-win32) _win32=no _dshow=no ;;
2013 --enable-dshow) _win32=yes _dshow=yes ;;
2014 --disable-dshow) _dshow=no ;;
2016 --with-x11incdir=*)
2017 _inc_x11=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
2019 --with-x11libdir=*)
2020 _x11_paths=`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
2022 --with-dxr2incdir=*)
2023 _inc_dxr2=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
2025 --with-xvmclib=*)
2026 _xvmclib=`echo $ac_option | cut -d '=' -f 2`
2028 --with-dvbincdir=*)
2029 _inc_dvb=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
2031 --with-xvidlibdir=*)
2032 _ld_xvid=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
2034 --with-xvidincdir=*)
2035 _inc_xvid=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
2037 --with-dtslibdir=*)
2038 _ld_libdts=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
2040 --with-dtsincdir=*)
2041 _inc_libdts=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
2043 --with-x264libdir=*)
2044 _ld_x264=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
2046 --with-x264incdir=*)
2047 _inc_x264=-I`echo $ac_option | cut -d '=' -f 2 |sed 's,:, -I,g'`
2049 --with-sdl-config=*)
2050 _sdlconfig=`echo $ac_option | cut -d '=' -f 2`
2052 --with-freetype-config=*)
2053 _freetypeconfig=`echo $ac_option | cut -d '=' -f 2`
2055 --with-fribidi-config=*)
2056 _fribidiconfig=`echo $ac_option | cut -d '=' -f 2`
2058 --with-gtk-config=*)
2059 _gtkconfig=`echo $ac_option | cut -d '=' -f 2`
2061 --with-glib-config=*)
2062 _glibconfig=`echo $ac_option | cut -d '=' -f 2`
2064 # dvdnav disabled, it does not work
2065 # --with-dvdnav-config=*)
2066 # _dvdnavconfig=`echo $ac_option | cut -d '=' -f 2`
2067 # ;;
2068 --with-madlibdir=*)
2069 _ld_mad=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
2071 --with-cdparanoiaincdir=*)
2072 _inc_cdparanoia=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
2074 --with-cdparanoialibdir=*)
2075 _ld_cdparanoia=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
2077 --with-termcaplib=*)
2078 _ld_termcap=-l`echo $ac_option | cut -d '=' -f 2`
2079 _termcap=yes
2081 --prefix=*)
2082 _prefix=`echo $ac_option | cut -d '=' -f 2`
2084 --bindir=*)
2085 _bindir=`echo $ac_option | cut -d '=' -f 2`
2087 --datadir=*)
2088 _datadir=`echo $ac_option | cut -d '=' -f 2`
2090 --mandir=*)
2091 _mandir=`echo $ac_option | cut -d '=' -f 2`
2093 --confdir=*)
2094 _confdir=`echo $ac_option | cut -d '=' -f 2`
2096 --libdir=*)
2097 _libdir=`echo $ac_option | cut -d '=' -f 2`
2101 echo "Unknown parameter: $ac_option"
2102 exit 1
2105 esac
2106 done
2108 # Atmos: moved this here, to be correct, if --prefix is specified
2109 test -z "$_bindir" && _bindir="$_prefix/bin"
2110 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
2111 test -z "$_mandir" && _mandir="$_prefix/man"
2112 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
2113 test -z "$_libdir" && _libdir="$_prefix/lib"
2114 test -z "$_mlibdir" && _mlibdir="$MLIBHOME"
2116 if x86 ; then
2117 # Checking assembler (_as) compatibility...
2118 # Added workaround for older as that reads from stdin by default - atmos
2119 as_version=`echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p'`
2120 echocheck "assembler ($_as $as_version)"
2122 _pref_as_version='2.9.1'
2123 echo 'nop' > $TMPS
2124 if test "$_mmx" = yes ; then
2125 echo 'emms' >> $TMPS
2127 if test "$_3dnow" = yes ; then
2128 _pref_as_version='2.10.1'
2129 echo 'femms' >> $TMPS
2131 if test "$_3dnowex" = yes ; then
2132 _pref_as_version='2.10.1'
2133 echo 'pswapd %mm0, %mm0' >> $TMPS
2135 if test "$_mmx2" = yes ; then
2136 _pref_as_version='2.10.1'
2137 echo 'movntq %mm0, (%eax)' >> $TMPS
2139 if test "$_sse" = yes ; then
2140 _pref_as_version='2.10.1'
2141 echo 'xorps %xmm0, %xmm0' >> $TMPS
2143 #if test "$_sse2" = yes ; then
2144 # _pref_as_version='2.11'
2145 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2147 $_as $TMPS -o $TMPO > /dev/null 2>&1 || as_verc_fail=yes
2149 if test "$as_verc_fail" != yes ; then
2150 echores "ok"
2151 else
2152 echores "failed"
2153 echo "Upgrade binutils to ${_pref_as_version} ..."
2154 die "obsolete binutils version"
2158 if ppc ; then
2160 # check if altivec is supported by the compiler, and how to enable it
2162 _altivec_gcc_flags=''
2164 if test "$_altivec" = yes -o "$_runtime_cpudetection" = yes ; then
2165 echocheck "GCC altivec support"
2167 p=''
2168 cat > $TMPC << EOF
2169 int main() {
2170 return 0;
2173 FSF_flags='-maltivec -mabi=altivec'
2174 Darwin_flags='-faltivec -D__APPLE_ALTIVEC__'
2176 # check for Darwin-style flags first, since
2177 # gcc-3.3 (August Update from Apple) on MacOS 10.2.8
2178 # accepts but ignores FSF-style flags...
2180 if test -z "$p"; then
2181 cc_check $Darwin_flags && p='Darwin'
2183 if test -z "$p"; then
2184 cc_check $FSF_flags && p='FSF'
2187 case $p in
2188 FSF) _altivec_gcc_flags="$FSF_flags" _altivec=yes ;;
2189 Darwin) _altivec_gcc_flags="$Darwin_flags" _altivec=yes ;;
2190 *) _altivec=no ;;
2191 esac
2193 if test -z "$p"; then
2194 p=none
2195 else
2196 p="$p-style ($_altivec_gcc_flags)"
2199 echores "$p"
2202 # check if <altivec.h> should be included
2204 _def_altivec_h='#undef HAVE_ALTIVEC_H'
2206 if test "$_altivec" = yes ; then
2207 echocheck "altivec.h"
2208 cat > $TMPC << EOF
2209 #include <altivec.h>
2210 int main(void) { return 0; }
2212 _have_altivec_h=no
2213 cc_check $_altivec_gcc_flags && _have_altivec_h=yes
2214 if test "$_have_altivec_h" = yes ; then
2215 _def_altivec_h='#define HAVE_ALTIVEC_H 1'
2217 echores "$_have_altivec_h"
2220 # disable runtime cpudetection if
2221 # - we cannot generate altivec code
2222 # - altivec is disabled by the user
2224 if test "$_runtime_cpudetection" = yes -a "$_altivec" = no ; then
2225 _runtime_cpudetection=no
2228 # show that we are optimizing for altivec (if enabled and supported)
2230 if test "$_runtime_cpudetection" = no -a "$_altivec" = yes ; then
2231 _optimizing="$_optimizing altivec"
2234 # if altivec is enabled, make sure the correct flags turn up in CFLAGS
2236 if test "$_altivec" = yes ; then
2237 _mcpu="$_mcpu $_altivec_gcc_flags"
2240 # setup _def_altivec correctly
2242 if test "$_altivec" = yes ; then
2243 _def_altivec='#define HAVE_ALTIVEC 1'
2244 else
2245 _def_altivec='#undef HAVE_ALTIVEC'
2249 _def_mmx='#undef HAVE_MMX'
2250 test "$_mmx" = yes && _def_mmx='#define HAVE_MMX 1'
2251 _def_mmx2='#undef HAVE_MMX2'
2252 test "$_mmx2" = yes && _def_mmx2='#define HAVE_MMX2 1'
2253 _def_3dnow='#undef HAVE_3DNOW'
2254 test "$_3dnow" = yes && _def_3dnow='#define HAVE_3DNOW 1'
2255 _def_3dnowex='#undef HAVE_3DNOWEX'
2256 test "$_3dnowex" = yes && _def_3dnowex='#define HAVE_3DNOWEX 1'
2257 _def_sse='#undef HAVE_SSE'
2258 test "$_sse" = yes && _def_sse='#define HAVE_SSE 1'
2259 _def_sse2='#undef HAVE_SSE2'
2260 test "$_sse2" = yes && _def_sse2='#define HAVE_SSE2 1'
2262 # Checking kernel version...
2263 if x86 && linux ; then
2264 _k_verc_problem=no
2265 kernel_version=`uname -r 2>&1`
2266 echocheck "$system_name kernel version"
2267 case "$kernel_version" in
2268 '') kernel_version="?.??"; _k_verc_fail=yes;;
2269 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2270 _k_verc_problem=yes;;
2271 esac
2272 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2273 _k_verc_fail=yes
2275 if test "$_k_verc_fail" ; then
2276 echores "$kernel_version, fail"
2277 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2278 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2279 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2280 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2281 echo "2.2.x you must upgrade it to get SSE support!"
2282 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2283 else
2284 echores "$kernel_version, ok"
2288 if test "$_vidix" = auto ; then
2289 _vidix=no
2290 # should check for x86 systems supporting VIDIX (does QNX have VIDIX?)
2291 x86 && _vidix=yes
2292 x86_64 && _vidix=yes
2293 ppc && linux && _vidix=yes
2294 alpha && linux && _vidix=yes
2295 qnx && _vidix=no
2296 sunos && _vidix=no
2297 beos && _vidix=no
2298 darwin && _vidix=no
2301 echocheck "mplayer binary name"
2302 if win32 ; then
2303 _prg="mplayer.exe"
2304 _prg_mencoder="mencoder.exe"
2305 else
2306 _prg="mplayer"
2307 _prg_mencoder="mencoder"
2309 echores $_prg
2312 # On QNX we must link to libph - Gabucino
2313 if qnx ; then
2314 _ld_arch="$_ld_arch -lph"
2317 # checking for a working awk, I'm using mawk first, because it's fastest - atmos
2318 _awk=
2319 if test "$_vidix" = yes ; then
2320 _awk_verc_fail=yes
2321 echocheck "awk"
2322 for _awk in mawk gawk nawk awk; do
2323 if ( $_awk 'BEGIN{testme();}function testme(){print"";}' ) >> "$TMPLOG" 2>&1; then
2324 _awk_verc_fail=no
2325 break
2327 done
2328 test "$_awk_verc_fail" = yes && _awk=no
2329 echores "$_awk"
2330 if test "$_awk_verc_fail" = yes; then
2331 echo "VIDIX needs awk, but no working implementation was found!"
2332 echo "Try the GNU version, which can be downloaded from:"
2333 echo "ftp://ftp.gnu.org/gnu/gawk/"
2334 echo "If you don't need VIDIX, you can use configure --disable-vidix instead."
2335 die "no awk"
2339 # If IRIX we must use ar instead of ranlib (not present on IRIX systems)
2340 if irix ; then
2341 _ranlib='ar -r'
2342 elif linux ; then
2343 _ranlib='true'
2346 ######################
2347 # MAIN TESTS GO HERE #
2348 ######################
2351 echocheck "extra headers"
2352 if test "$_inc_extra" ; then
2353 echores "$_inc_extra"
2354 else
2355 echores "none"
2359 echocheck "extra libs"
2360 if test "$_ld_extra" ; then
2361 echores "$_ld_extra"
2362 else
2363 echores "none"
2366 echocheck "-lposix"
2367 cat > $TMPC <<EOF
2368 int main(void) { return 0; }
2370 if cc_check -lposix ; then
2371 _ld_arch="$_ld_arch -lposix"
2372 echores "yes"
2373 else
2374 echores "no"
2377 echocheck "-lm"
2378 cat > $TMPC <<EOF
2379 int main(void) { return 0; }
2381 if cc_check -lm ; then
2382 _ld_lm="-lm"
2383 echores "yes"
2384 else
2385 _ld_lm=""
2386 echores "no"
2389 # Checking for localization ...
2390 # CSAK EGY MARADHAT - A HEGYLAKO
2391 echocheck "i18n"
2392 if test "$_i18n" != no ; then
2393 cat > $TMPC <<EOF
2394 #include <libintl.h>
2395 int main(void) { gettext("test"); return 0; }
2397 _i18n=no
2398 _i18n_libs=""
2399 if test "$_i18n" = auto ; then
2400 cc_check && _i18n=yes
2401 else
2402 for i18n_lib in "" "-lintl"; do
2403 cc_check $i18n_lib && _i18n=yes && _i18n_libs=$i18n_lib && break
2404 done
2407 if test "$_i18n" = yes ; then
2408 _def_i18n='#define USE_I18N 1'
2409 else
2410 _def_i18n='#undef USE_I18N'
2412 if test "$_i18n_libs" ; then
2413 _res_comment="using $_i18n_libs"
2415 echores "$_i18n"
2418 echocheck "langinfo"
2419 if test "$_langinfo" = auto ; then
2420 cat > $TMPC <<EOF
2421 #include <langinfo.h>
2422 int main(void) { nl_langinfo(CODESET); return 0; }
2424 _langinfo=no
2425 cc_check && _langinfo=yes
2427 if test "$_langinfo" = yes ; then
2428 _def_langinfo='#define USE_LANGINFO 1'
2429 else
2430 _def_langinfo='#undef USE_LANGINFO'
2432 echores "$_langinfo"
2435 echocheck "language"
2436 test -z "$_language" && _language=$LINGUAS
2437 _language=`echo $_language | sed 's/,/ /g'`
2438 echo $_language | grep all > /dev/null || LANGUAGES="$_language en"
2439 for lang in $_language ; do
2440 test "$lang" = all && lang=en
2441 if test -f "help/help_mp-${lang}.h" ; then
2442 _language=$lang
2443 break
2444 else
2445 echo -n "$lang not found, "
2446 _language=`echo $_language | sed "s/$lang *//"`
2448 done
2449 test -z "$_language" && _language=en
2450 _mp_help="help/help_mp-${_language}.h"
2451 test -f $_mp_help || die "$_mp_help not found"
2452 for lang in $LANGUAGES ; do
2453 if test -f "DOCS/man/$lang/mplayer.1" ; then
2454 MAN_LANG="$MAN_LANG $lang"
2456 done
2457 _doc_lang=$_language
2458 test -d DOCS/xml/$_doc_lang || _doc_lang=en
2459 echores "using $_language (man pages: $MAN_LANG)"
2462 echocheck "enable sighandler"
2463 if test "$_sighandler" = yes ; then
2464 _def_sighandler='#define ENABLE_SIGHANDLER 1'
2465 else
2466 _def_sighandler='#undef ENABLE_SIGHANDLER'
2468 echores "$_sighandler"
2470 echocheck "runtime cpudetection"
2471 if test "$_runtime_cpudetection" = yes ; then
2472 _optimizing="Runtime CPU-Detection enabled"
2473 _def_runtime_cpudetection='#define RUNTIME_CPUDETECT 1'
2474 else
2475 _def_runtime_cpudetection='#undef RUNTIME_CPUDETECT'
2477 echores "$_runtime_cpudetection"
2480 echocheck "restrict keyword"
2481 for restrict_keyword in restrict __restrict __restrict__ ; do
2482 echo "void foo(char * $restrict_keyword p); int main(){}" > $TMPC
2483 if cc_check; then
2484 _def_restrict_keyword=$restrict_keyword
2485 break;
2487 done
2488 if [ -n "$_def_restrict_keyword" ]; then
2489 echores "$_def_restrict_keyword"
2490 else
2491 echores "none"
2493 # Avoid infinite recursion loop ("#define restrict restrict")
2494 if [ "$_def_restrict_keyword" != "restrict" ]; then
2495 _def_restrict_keyword="#define restrict $_def_restrict_keyword"
2496 else
2497 _def_restrict_keyword=""
2501 echocheck "__builtin_expect"
2502 # GCC branch prediction hint
2503 cat > $TMPC << EOF
2504 int foo (int a) {
2505 a = __builtin_expect (a, 10);
2506 return a == 10 ? 0 : 1;
2508 int main() { return foo(10) && foo(0); }
2510 _builtin_expect=no
2511 cc_check && _builtin_expect=yes
2512 if test "$_builtin_expect" = yes ; then
2513 _def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2514 else
2515 _def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2517 echores "$_builtin_expect"
2520 echocheck "kstat"
2521 cat > $TMPC << EOF
2522 #include <kstat.h>
2523 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2525 _kstat=no
2526 cc_check -lkstat && _kstat=yes
2527 if test "$_kstat" = yes ; then
2528 _def_kstat="#define HAVE_LIBKSTAT 1"
2529 _ld_arch="-lkstat $_ld_arch"
2530 else
2531 _def_kstat="#undef HAVE_LIBKSTAT"
2533 echores "$_kstat"
2536 echocheck "posix4"
2537 # required for nanosleep on some systems
2538 cat > $TMPC << EOF
2539 #include <time.h>
2540 int main(void) { (void) nanosleep(0, 0); return 0; }
2542 _posix4=no
2543 cc_check -lposix4 && _posix4=yes
2544 if test "$_posix4" = yes ; then
2545 _ld_arch="-lposix4 $_ld_arch"
2547 echores "$_posix4"
2549 echocheck "lrintf"
2550 cat > $TMPC << EOF
2551 #include <math.h>
2552 int main(void) { long (*foo)(float); foo = lrintf; (void)(*foo)(0.0); return 0; }
2554 _lrintf=no
2555 cc_check -D_GNU_SOURCE $_ld_lm && _lrintf=yes
2556 if test "$_lrintf" = yes ; then
2557 _def_lrintf="#define HAVE_LRINTF 1"
2558 else
2559 _def_lrintf="#undef HAVE_LRINTF"
2561 echores "$_lrintf"
2563 echocheck "round"
2564 cat > $TMPC << EOF
2565 #include <math.h>
2566 int main(void) { (void) round(0.0); return 0; }
2568 _round=no
2569 cc_check $_ld_lm && _round=yes
2570 if test "$_round" = yes ; then
2571 _def_round="#define HAVE_ROUND 1"
2572 else
2573 _def_round="#undef HAVE_ROUND"
2575 echores "$_round"
2577 echocheck "nanosleep"
2578 # also check for nanosleep
2579 cat > $TMPC << EOF
2580 #include <time.h>
2581 int main(void) { (void) nanosleep(0, 0); return 0; }
2583 _nanosleep=no
2584 cc_check $_ld_arch && _nanosleep=yes
2585 if test "$_nanosleep" = yes ; then
2586 _def_nanosleep='#define HAVE_NANOSLEEP 1'
2587 else
2588 _def_nanosleep='#undef HAVE_NANOSLEEP'
2590 echores "$_nanosleep"
2593 echocheck "socklib"
2594 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2595 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2596 cat > $TMPC << EOF
2597 #include <netdb.h>
2598 #include <sys/socket.h>
2599 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
2601 for _ld_tmp in "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2602 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && break
2603 done
2604 if test $_winsock2 = auto && not cygwin ; then
2605 _winsock2=no
2606 cat > $TMPC << EOF
2607 #include <winsock2.h>
2608 int main(void) { (void) gethostbyname(0); return 0; }
2610 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2=yes
2612 if test "$_ld_sock" ; then
2613 echores "yes (using $_ld_sock)"
2614 else
2615 echores "no"
2619 if test $_winsock2 = yes ; then
2620 _ld_sock="-lws2_32"
2621 _def_winsock2='#define HAVE_WINSOCK2 1'
2622 else
2623 _def_winsock2='#undef HAVE_WINSOCK2'
2627 _use_aton=no
2628 echocheck "inet_pton()"
2629 cat > $TMPC << EOF
2630 #include <sys/types.h>
2631 #include <sys/socket.h>
2632 #include <arpa/inet.h>
2633 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
2635 if test "$_winsock2" = yes ; then
2636 echores "not needed (using winsock2 functions)"
2637 elif cc_check $_ld_sock ; then
2638 # NOTE: Linux has libresolv but does not need it
2640 echores "yes (using $_ld_sock)"
2641 elif cc_check $_ld_sock -lresolv ; then
2642 # NOTE: needed for SunOS at least
2643 _ld_sock="$_ld_sock -lresolv"
2644 echores "yes (using $_ld_sock)"
2645 else
2646 echores "no (=> i'll try inet_aton next)"
2648 echocheck "inet_aton()"
2649 cat > $TMPC << EOF
2650 #include <sys/types.h>
2651 #include <sys/socket.h>
2652 #include <arpa/inet.h>
2653 int main(void) { (void) inet_aton(0, 0); return 0; }
2655 _use_aton=yes
2656 if cc_check $_ld_sock ; then
2657 # NOTE: Linux has libresolv but does not need it
2659 echores "yes (using $_ld_sock)"
2660 elif cc_check $_ld_sock -lresolv ; then
2661 # NOTE: needed for SunOS at least
2662 _ld_sock="$_ld_sock -lresolv"
2663 echores "yes (using $_ld_sock)"
2664 else
2665 _use_aton=no
2666 _network=no
2667 echores "no (=> network support disabled)"
2671 _def_use_aton='#undef USE_ATON'
2672 if test "$_use_aton" != no; then
2673 _def_use_aton='#define USE_ATON 1'
2677 echocheck "inttypes.h (required)"
2678 cat > $TMPC << EOF
2679 #include <inttypes.h>
2680 int main(void) { return 0; }
2682 _inttypes=no
2683 cc_check && _inttypes=yes
2684 if test "$_inttypes" = yes ; then
2685 # nothing to do
2687 else
2688 echores "no"
2689 echocheck "bitypes.h (inttypes.h predecessor)"
2690 cat > $TMPC << EOF
2691 #include <sys/bitypes.h>
2692 int main(void) { return 0; }
2694 _inttypes=no
2695 cc_check && _inttypes=yes
2696 if test "$_inttypes" = yes ; then
2697 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."
2698 else
2699 die "Cannot find header either inttypes.h or bitypes.h (see DOCS/HTML/$_doc_lang/faq.html)."
2702 echores "$_inttypes"
2705 echocheck "int_fastXY_t in inttypes.h"
2706 cat > $TMPC << EOF
2707 #include <inttypes.h>
2708 int main(void) {
2709 volatile int_fast16_t v= 0;
2710 return v; }
2712 _fast_inttypes=no
2713 cc_check && _fast_inttypes=yes
2714 if test "$_fast_inttypes" = yes ; then
2715 # nothing to do
2717 else
2718 _def_fast_inttypes='
2719 typedef signed char int_fast8_t;
2720 typedef signed int int_fast16_t;
2721 typedef signed int int_fast32_t;
2722 typedef unsigned char uint_fast8_t;
2723 typedef unsigned int uint_fast16_t;
2724 typedef unsigned int uint_fast32_t;'
2726 echores "$_fast_inttypes"
2729 echocheck "word size"
2730 _mp_wordsize="#undef MP_WORDSIZE"
2731 cat > $TMPC << EOF
2732 #include <stdio.h>
2733 #include <sys/types.h>
2734 int main(void) { printf("%d\n", sizeof(size_t)*8); return 0; }
2736 cc_check && _wordsize=`$TMPO` && _mp_wordsize="#define MP_WORDSIZE $_wordsize"
2737 echores "$_wordsize"
2740 echocheck "stddef.h"
2741 cat > $TMPC << EOF
2742 #include <stddef.h>
2743 int main(void) { return 0; }
2745 _stddef=no
2746 cc_check && _stddef=yes
2747 if test "$_stddef" = yes ; then
2748 _def_stddef='#define HAVE_STDDEF_H 1'
2749 else
2750 _def_stddef='#undef HAVE_STDDEF_H'
2752 echores "$_stddef"
2755 echocheck "malloc.h"
2756 cat > $TMPC << EOF
2757 #include <malloc.h>
2758 int main(void) { (void) malloc(0); return 0; }
2760 _malloc=no
2761 cc_check && _malloc=yes
2762 if test "$_malloc" = yes ; then
2763 _def_malloc='#define HAVE_MALLOC_H 1'
2764 else
2765 _def_malloc='#undef HAVE_MALLOC_H'
2767 # malloc.h emits a warning in FreeBSD and OpenBSD
2768 freebsd || openbsd && _def_malloc='#undef HAVE_MALLOC_H'
2769 echores "$_malloc"
2772 echocheck "memalign()"
2773 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
2774 cat > $TMPC << EOF
2775 #include <malloc.h>
2776 int main (void) { (void) memalign(64, sizeof(char)); return 0; }
2778 _memalign=no
2779 cc_check && _memalign=yes
2780 if test "$_memalign" = yes ; then
2781 _def_memalign='#define HAVE_MEMALIGN 1'
2782 else
2783 _def_memalign='#undef HAVE_MEMALIGN'
2785 echores "$_memalign"
2788 echocheck "alloca.h"
2789 cat > $TMPC << EOF
2790 #include <alloca.h>
2791 int main(void) { (void) alloca(0); return 0; }
2793 _alloca=no
2794 cc_check && _alloca=yes
2795 if cc_check ; then
2796 _def_alloca='#define HAVE_ALLOCA_H 1'
2797 else
2798 _def_alloca='#undef HAVE_ALLOCA_H'
2800 echores "$_alloca"
2803 echocheck "mman.h"
2804 cat > $TMPC << EOF
2805 #include <sys/types.h>
2806 #include <sys/mman.h>
2807 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
2809 _mman=no
2810 cc_check && _mman=yes
2811 if test "$_mman" = yes ; then
2812 _def_mman='#define HAVE_SYS_MMAN_H 1'
2813 else
2814 _def_mman='#undef HAVE_SYS_MMAN_H'
2816 echores "$_mman"
2818 cat > $TMPC << EOF
2819 #include <sys/types.h>
2820 #include <sys/mman.h>
2821 int main(void) { void *p = MAP_FAILED; return 0; }
2823 _mman_has_map_failed=no
2824 cc_check && _mman_has_map_failed=yes
2825 if test "$_mman_has_map_failed" = yes ; then
2826 _def_mman_has_map_failed=''
2827 else
2828 _def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
2831 echocheck "dynamic loader"
2832 cat > $TMPC << EOF
2833 #include <dlfcn.h>
2834 int main(void) { dlopen(0, 0); dlclose(0); dlsym(0, 0); return 0; }
2836 _dl=no
2837 for _ld_tmp in "" "-ldl" ; do
2838 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
2839 done
2840 if test "$_dl" = yes ; then
2841 _def_dl='#define HAVE_LIBDL 1'
2842 else
2843 _def_dl='#undef HAVE_LIBDL'
2845 echores "$_dl"
2848 echocheck "dynamic a/v plugins support"
2849 if test "$_dl" = no ; then
2850 _dynamic_plugins=no
2852 if test "$_dynamic_plugins" = yes ; then
2853 _def_dynamic_plugins='#define DYNAMIC_PLUGINS 1'
2854 else
2855 _def_dynamic_plugins='#undef DYNAMIC_PLUGINS'
2857 echores "$_dynamic_plugins"
2860 #echocheck "dynamic linking"
2861 # FIXME !! make this dynamic detection work and modify at the end (search _ld_dl_dynamic)
2862 # also gcc flags are different, but ld flags aren't (-Bdynamic/-Bstatic/-Bsymbolic)
2863 #cat > $TMPC << EOF
2864 #int main(void) { return 0; }
2865 #EOF
2866 #if cc_check -rdynamic ; then
2867 # _ld_dl_dynamic='-rdynamic'
2868 #elif cc_check -Bdynamic ; then
2869 # _ld_dl_dynamic='-Bdynamic'
2870 #elif cc_check ; then
2871 # _ld_dl_dynamic=''
2873 #echores "using $_ld_dl_dynamic"
2875 _def_threads='#undef HAVE_THREADS'
2877 echocheck "pthread"
2878 if test "$_pthreads" != no ; then
2879 cat > $TMPC << EOF
2880 #include <pthread.h>
2881 void* func(void *arg) { return arg; }
2882 int main(void) { pthread_t tid; return pthread_create (&tid, 0, func, 0) == 0 ? 0 : 1; }
2884 _pthreads=no
2885 if not hpux ; then
2886 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
2887 # for crosscompilation, we cannot execute the program, be happy if we can link statically
2888 cc_check $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
2889 done
2892 if test "$_pthreads" = yes ; then
2893 _res_comment="(using $_ld_pthread)"
2894 _def_pthreads='#define HAVE_PTHREADS 1'
2895 _def_threads='#define HAVE_THREADS 1'
2896 else
2897 _res_comment="(v4l, vo_gl, ao_alsa, ao_nas, ao_macosx, win32 loader disabled)"
2898 _def_pthreads='#undef HAVE_PTHREADS'
2899 _nas=no ; _tv_v4l=no ; _macosx=no
2900 if not mingw32 ; then
2901 _win32=no
2904 echores "$_pthreads"
2907 echocheck "iconv"
2908 if test "$_iconv" = auto ; then
2909 _iconv_tmp='#include <iconv.h>'
2911 cat > $TMPC << EOF
2912 #include <stdio.h>
2913 #include <unistd.h>
2914 $_iconv_tmp
2915 #define INBUFSIZE 1024
2916 #define OUTBUFSIZE 4096
2918 char inbuffer[INBUFSIZE];
2919 char outbuffer[OUTBUFSIZE];
2921 int main(void) {
2922 size_t numread;
2923 iconv_t icdsc;
2924 char *tocode="UTF-8";
2925 char *fromcode="cp1250";
2926 if ((icdsc = iconv_open (tocode, fromcode)) != (iconv_t)(-1)) {
2927 while ((numread = read (0, inbuffer, INBUFSIZE))) {
2928 char *iptr=inbuffer;
2929 char *optr=outbuffer;
2930 size_t inleft=numread;
2931 size_t outleft=OUTBUFSIZE;
2932 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
2933 != (size_t)(-1)) {
2934 write (1, outbuffer, OUTBUFSIZE - outleft);
2937 if (iconv_close(icdsc) == -1)
2942 _iconv=no
2943 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
2944 cc_check $_ld_lm $_ld_tmp && _ld_iconv="$_ld_tmp" && _iconv=yes && break
2945 done
2947 if test "$_iconv" = yes ; then
2948 _def_iconv='#define USE_ICONV 1'
2949 else
2950 _def_iconv='#undef USE_ICONV'
2952 echores "$_iconv"
2955 echocheck "sys/soundcard.h"
2956 cat > $TMPC << EOF
2957 #include <sys/soundcard.h>
2958 int main(void) { return 0; }
2960 _sys_soundcard=no
2961 cc_check && _sys_soundcard=yes
2962 if test "$_sys_soundcard" = yes ; then
2963 _def_sys_soundcard='#define HAVE_SYS_SOUNDCARD_H 1'
2964 _inc_soundcard='#include <sys/soundcard.h>'
2965 else
2966 _def_sys_soundcard='#undef HAVE_SYS_SOUNDCARD_H'
2968 echores "$_sys_soundcard"
2970 if test "$_sys_soundcard" != yes ; then
2971 echocheck "soundcard.h"
2972 cat > $TMPC << EOF
2973 #include <soundcard.h>
2974 int main(void) { return 0; }
2976 _soundcard=no
2977 cc_check && _soundcard=yes
2978 if linux || test "$_ossaudio" != no ; then
2979 # use soundcard.h on Linux, or when OSS support is enabled
2980 echores "$_soundcard"
2981 else
2982 # we don't want to use soundcard.h on non-Linux if OSS support not enabled!
2983 echores "$_soundcard, but ignored!"
2984 _soundcard=no
2986 if test "$_soundcard" = yes ; then
2987 _def_soundcard='#define HAVE_SOUNDCARD_H 1'
2988 _inc_soundcard='#include <soundcard.h>'
2989 else
2990 _def_soundcard='#undef HAVE_SOUNDCARD_H'
2992 else
2993 _def_soundcard='#undef HAVE_SOUNDCARD_H'
2997 echocheck "sys/dvdio.h"
2998 cat > $TMPC << EOF
2999 #include <unistd.h>
3000 #include <sys/dvdio.h>
3001 int main(void) { return 0; }
3003 _dvdio=no
3004 cc_check && _dvdio=yes
3005 if test "$_dvdio" = yes ; then
3006 _def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3007 else
3008 _def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3010 echores "$_dvdio"
3013 echocheck "sys/cdio.h"
3014 cat > $TMPC << EOF
3015 #include <unistd.h>
3016 #include <sys/cdio.h>
3017 int main(void) { return 0; }
3019 _cdio=no
3020 cc_check && _cdio=yes
3021 if test "$_cdio" = yes ; then
3022 _def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3023 else
3024 _def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3026 echores "$_cdio"
3029 echocheck "linux/cdrom.h"
3030 cat > $TMPC << EOF
3031 #include <sys/types.h>
3032 #include <linux/cdrom.h>
3033 int main(void) { return 0; }
3035 _cdrom=no
3036 cc_check && _cdrom=yes
3037 if test "$_cdrom" = yes ; then
3038 _def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3039 else
3040 _def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3042 echores "$_cdrom"
3045 echocheck "dvd.h"
3046 cat > $TMPC << EOF
3047 #include <dvd.h>
3048 int main(void) { return 0; }
3050 _dvd=no
3051 cc_check && _dvd=yes
3052 if test "$_dvd" = yes ; then
3053 _def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3054 else
3055 _def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3057 echores "$_dvd"
3060 echocheck "BSDI dvd.h"
3061 cat > $TMPC << EOF
3062 #include <dvd.h>
3063 int main(void) { return 0; }
3065 _bsdi_dvd=no
3066 cc_check && _bsdi_dvd=yes
3067 if test "$_bsdi_dvd" = yes ; then
3068 _def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3069 else
3070 _def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3072 echores "$_bsdi_dvd"
3075 echocheck "HPUX SCSI header"
3076 cat > $TMPC << EOF
3077 #include <sys/scsi.h>
3078 int main(void) { return 0; }
3080 _hpux_scsi_h=no
3081 cc_check && _hpux_scsi_h=yes
3082 if test "$_hpux_scsi_h" = yes ; then
3083 _def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3084 else
3085 _def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3087 echores "$_hpux_scsi_h"
3090 echocheck "userspace SCSI headers (Solaris)"
3091 cat > $TMPC << EOF
3092 # include <unistd.h>
3093 # include <stropts.h>
3094 # include <sys/scsi/scsi_types.h>
3095 # include <sys/scsi/impl/uscsi.h>
3096 int main(void) { return 0; }
3098 _sol_scsi_h=no
3099 cc_check && _sol_scsi_h=yes
3100 if test "$_sol_scsi_h" = yes ; then
3101 _def_sol_scsi_h='#define SOLARIS_USCSI 1'
3102 else
3103 _def_sol_scsi_h='#undef SOLARIS_USCSI'
3105 echores "$_sol_scsi_h"
3108 echocheck "termcap"
3109 if test "$_termcap" = auto ; then
3110 cat > $TMPC <<EOF
3111 int main(void) { tgetent(); return 0; }
3113 _termcap=no
3114 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3115 cc_check $_ld_tmp && _ld_termcap="$_ld_tmp" && _termcap=yes && break
3116 done
3118 if test "$_termcap" = yes ; then
3119 _def_termcap='#define USE_TERMCAP 1'
3120 _res_comment="using $_ld_termcap"
3121 else
3122 _def_termcap='#undef USE_TERMCAP'
3124 echores "$_termcap"
3127 echocheck "termios"
3128 if test "$_termios" = auto ; then
3129 cat > $TMPC <<EOF
3130 #include <sys/termios.h>
3131 int main(void) { return 0; }
3133 _termios=auto
3134 cc_check && _termios=yes
3135 _def_termios_h_name='sys/termios.h'
3137 # second test:
3138 if test "$_termios" = auto ; then
3139 cat > $TMPC <<EOF
3140 #include <termios.h>
3141 int main(void) { return 0; }
3143 _termios=no
3144 cc_check && _termios=yes
3145 _def_termios_h_name='termios.h'
3148 if test "$_termios" = yes ; then
3149 _def_termios='#define HAVE_TERMIOS 1'
3150 _def_termios_h='#undef HAVE_TERMIOS_H'
3151 _def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3153 if test "$_def_termios_h_name" = 'sys/termios.h' ; then
3154 _def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3155 elif test "$_def_termios_h_name" = 'termios.h' ; then
3156 _def_termios_h='#define HAVE_TERMIOS_H 1'
3158 _res_comment="using $_def_termios_h_name"
3159 else
3160 _def_termios='#undef HAVE_TERMIOS'
3161 _def_termios_h_name=''
3162 _termios=no
3164 echores "$_termios"
3167 echocheck "shm"
3168 if test "$_shm" = auto ; then
3169 cat > $TMPC << EOF
3170 #include <sys/types.h>
3171 #include <sys/shm.h>
3172 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3174 _shm=no
3175 cc_check && _shm=yes
3177 if test "$_shm" = yes ; then
3178 _def_shm='#define HAVE_SHM 1'
3179 else
3180 _def_shm='#undef HAVE_SHM'
3182 echores "$_shm"
3185 # XXX: FIXME, add runtime checking
3186 echocheck "linux devfs"
3187 echores "$_linux_devfs"
3190 echocheck "scandir()"
3191 cat > $TMPC << EOF
3192 int main (void) { scandir("", 0, 0, 0); alphasort(0, 0); return 0; }
3194 _scandir=no
3195 cc_check && _scandir=yes
3196 if test "$_scandir" = yes ; then
3197 _def_scandir='#define HAVE_SCANDIR 1'
3198 else
3199 _def_scandir='#undef HAVE_SCANDIR'
3201 echores "$_scandir"
3204 echocheck "strsep()"
3205 cat > $TMPC << EOF
3206 #include <string.h>
3207 int main (void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3209 _strsep=no
3210 cc_check && _strsep=yes
3211 if test "$_strsep" = yes ; then
3212 _def_strsep='#define HAVE_STRSEP 1'
3213 else
3214 _def_strsep='#undef HAVE_STRSEP'
3216 echores "$_strsep"
3218 echocheck "strlcpy()"
3219 cat > $TMPC << EOF
3220 #include <string.h>
3221 int main (void) { char *s = "Hello, world!", t[20]; (void) strlcpy(t, s, sizeof( t )); return 0; }
3223 _strlcpy=no
3224 cc_check && _strlcpy=yes
3225 if test "$_strlcpy" = yes ; then
3226 _def_strlcpy='#define HAVE_STRLCPY 1'
3227 else
3228 _def_strlcpy='#undef HAVE_STRLCPY'
3230 echores "$_strlcpy"
3232 echocheck "strlcat()"
3233 cat > $TMPC << EOF
3234 #include <string.h>
3235 int main (void) { char *s = "Hello, world!", t[20]; (void) strlcat(t, s, sizeof( t )); return 0; }
3237 _strlcat=no
3238 cc_check && _strlcat=yes
3239 if test "$_strlcat" = yes ; then
3240 _def_strlcat='#define HAVE_STRLCAT 1'
3241 else
3242 _def_strlcat='#undef HAVE_STRLCAT'
3244 echores "$_strlcat"
3246 echocheck "fseeko()"
3247 cat > $TMPC << EOF
3248 #include <stdio.h>
3249 int main (void) { int i; i = fseeko(stdin, 0, 0); return 0; }
3251 _fseeko=no
3252 cc_check && _fseeko=yes
3253 if test "$_fseeko" = yes ; then
3254 _def_fseeko='#define HAVE_FSEEKO 1'
3255 else
3256 _def_fseeko='#undef HAVE_FSEEKO'
3258 echores "$_fseeko"
3260 echocheck "localtime_r()"
3261 cat > $TMPC << EOF
3262 #include <time.h>
3263 int main( void ) { localtime_r(NULL, NULL); }
3265 _localtime_r=no
3266 cc_check && _localtime_r=yes
3267 if test "$_localtime_r" = yes ; then
3268 _def_localtime_r='#define HAVE_LOCALTIME_R 1'
3269 else
3270 _def_localtime_r='#undef HAVE_LOCALTIME_R'
3272 echores "$_localtime_r"
3274 echocheck "vsscanf()"
3275 cat > $TMPC << EOF
3276 #include <stdarg.h>
3277 int main(void) { vsscanf(0, 0, 0); return 0; }
3279 _vsscanf=no
3280 cc_check && _vsscanf=yes
3281 if test "$_vsscanf" = yes ; then
3282 _def_vsscanf='#define HAVE_VSSCANF 1'
3283 else
3284 _def_vsscanf='#undef HAVE_VSSCANF'
3286 echores "$_vsscanf"
3289 echocheck "swab()"
3290 cat > $TMPC << EOF
3291 #include <unistd.h>
3292 int main(void) { swab(0, 0, 0); return 0; }
3294 _swab=no
3295 cc_check && _swab=yes
3296 if test "$_swab" = yes ; then
3297 _def_swab='#define HAVE_SWAB 1'
3298 else
3299 _def_swab='#undef HAVE_SWAB'
3301 echores "$_swab"
3303 echocheck "posix select()"
3304 cat > $TMPC << EOF
3305 #include <stdio.h>
3306 #include <stdlib.h>
3307 #include <sys/types.h>
3308 #include <string.h>
3309 #include <sys/time.h>
3310 #include <unistd.h>
3311 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3313 _posix_select=no
3314 cc_check && _posix_select=yes
3315 if test "$_posix_select" = no ; then
3316 _def_no_posix_select='#define HAVE_NO_POSIX_SELECT 1'
3317 else
3318 _def_no_posix_select='#undef HAVE_NO_POSIX_SELECT'
3320 echores "$_posix_select"
3323 echocheck "gettimeofday()"
3324 cat > $TMPC << EOF
3325 #include <stdio.h>
3326 #include <sys/time.h>
3327 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3329 _gettimeofday=no
3330 cc_check && _gettimeofday=yes
3331 if test "$_gettimeofday" = yes ; then
3332 _def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3333 else
3334 _def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3336 echores "$_gettimeofday"
3339 echocheck "glob()"
3340 cat > $TMPC << EOF
3341 #include <stdio.h>
3342 #include <glob.h>
3343 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3345 _glob=no
3346 cc_check && _glob=yes
3347 if test "$_glob" = yes ; then
3348 _def_glob='#define HAVE_GLOB 1'
3349 else
3350 _def_glob='#undef HAVE_GLOB'
3352 echores "$_glob"
3355 echocheck "setenv()"
3356 cat > $TMPC << EOF
3357 #include <stdlib.h>
3358 int main (void){ setenv("","",0); return 0; }
3360 _setenv=no
3361 cc_check && _setenv=yes
3362 if test "$_setenv" = yes ; then
3363 _def_setenv='#define HAVE_SETENV 1'
3364 else
3365 _def_setenv='#undef HAVE_SETENV'
3367 echores "$_setenv"
3370 echocheck "sys/sysinfo.h"
3371 cat > $TMPC << EOF
3372 #include <sys/sysinfo.h>
3373 int main(void) {
3374 struct sysinfo s_info;
3375 sysinfo(&s_info);
3376 return 0;
3379 _sys_sysinfo=no
3380 cc_check && _sys_sysinfo=yes
3381 if test "$_sys_sysinfo" = yes ; then
3382 _def_sys_sysinfo='#define HAVE_SYS_SYSINFO_H 1'
3383 _inc_sysinfo='#include <sys/sysinfo.h>'
3384 else
3385 _def_sys_sysinfo='#undef HAVE_SYS_SYSINFO_H'
3387 echores "$_sys_sysinfo"
3390 echocheck "Mac OS X APIs"
3391 if test "$_macosx" = auto && darwin ; then
3392 productName=`/usr/bin/sw_vers -productName`
3393 if test "$productName" = "Mac OS X" ; then
3394 _macosx=yes
3395 else
3396 _macosx=no
3397 _def_macosx='#undef MACOSX'
3398 _noaomodules="macosx $_noaomodules"
3399 _novomodules="quartz $_novomodules"
3402 if test "$_macosx" = yes ; then
3403 cat > $TMPC <<EOF
3404 #include <Carbon/Carbon.h>
3405 #include <QuickTime/QuickTime.h>
3406 #include <CoreAudio/CoreAudio.h>
3407 int main(void) {
3408 EnterMovies();
3409 ExitMovies();
3410 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
3413 if cc_check -framework Carbon -framework QuickTime -framework CoreAudio; then
3414 _macosx=yes
3415 _macosx_frameworks="-framework Carbon -framework QuickTime -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
3416 _def_macosx='#define MACOSX 1'
3417 _aosrc="$_aosrc ao_macosx.c"
3418 _aomodules="macosx $_aomodules"
3419 _vosrc="$_vosrc vo_quartz.c"
3420 _vomodules="quartz $_vomodules"
3421 else
3422 _macosx=no
3423 _def_macosx='#undef MACOSX'
3424 _noaomodules="macosx $_noaomodules"
3425 _novomodules="quartz $_novomodules"
3427 cat > $TMPC <<EOF
3428 #include <Carbon/Carbon.h>
3429 #include <QuartzCore/CoreVideo.h>
3430 int main(void) {}
3432 if cc_check -framework Carbon -framework QuartzCore -framework OpenGL; then
3433 _vosrc="$_vosrc vo_macosx.m"
3434 _vomodules="macosx $_vomodules"
3435 _macosx_frameworks="$_macosx_frameworks -framework Cocoa -framework QuartzCore -framework OpenGL"
3436 _def_macosx_corevideo='#define MACOSX_COREVIDEO 1'
3437 _macosx_corevideo=yes
3438 else
3439 _novomodules="macosx $_novomodules"
3440 _def_macosx_corevideo='#undef MACOSX_COREVIDEO'
3441 _macosx_corevideo=no
3444 echores "$_macosx"
3446 echocheck "Mac OS X Finder Support"
3447 if test "$_macosx_finder_support" = auto ; then
3448 _macosx_finder_support=$_macosx
3450 if test "$_macosx_finder_support" = yes; then
3451 _def_macosx_finder_support='#define MACOSX_FINDER_SUPPORT 1'
3452 _macosx_finder_support=yes
3453 else
3454 _def_macosx_finder_support='#undef MACOSX_FINDER_SUPPORT'
3455 _macosx_finder_support=no
3457 echores "$_macosx_finder_support"
3459 echocheck "Mac OS X Bundle file locations"
3460 if test "$_macosx_bundle" = auto ; then
3461 _macosx_bundle=$_macosx_finder_support
3463 if test "$_macosx_bundle" = yes; then
3464 _def_macosx_bundle='#define MACOSX_BUNDLE 1'
3465 else
3466 _def_macosx_bundle='#undef MACOSX_BUNDLE'
3467 _macosx_bundle=no
3469 echores "$_macosx_bundle"
3471 echocheck "Samba support (libsmbclient)"
3472 if test "$_smbsupport" = yes; then
3473 _ld_smb="-lsmbclient"
3475 if test "$_smbsupport" = auto; then
3476 _smbsupport=no
3477 cat > $TMPC << EOF
3478 #include <libsmbclient.h>
3479 int main(void) { smbc_opendir("smb://"); return 0; }
3481 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3482 cc_check $_ld_tmp && _ld_smb="$_ld_tmp" && _smbsupport=yes && break
3483 done
3486 if test "$_smbsupport" = yes; then
3487 _def_smbsupport="#define LIBSMBCLIENT"
3488 _inputmodules="smb $_inputmodules"
3489 else
3490 _def_smbsupport="#undef LIBSMBCLIENT"
3491 _noinputmodules="smb $_noinputmodules"
3493 echores "$_smbsupport"
3496 #########
3497 # VIDEO #
3498 #########
3501 echocheck "3dfx"
3502 if test "$_3dfx" = yes ; then
3503 _def_3dfx='#define HAVE_3DFX 1'
3504 _vosrc="$_vosrc vo_3dfx.c"
3505 _vomodules="3dfx $_vomodules"
3506 else
3507 _def_3dfx='#undef HAVE_3DFX'
3508 _novomodules="3dfx $_novomodules"
3510 echores "$_3dfx"
3513 echocheck "tdfxfb"
3514 if test "$_tdfxfb" = yes ; then
3515 _def_tdfxfb='#define HAVE_TDFXFB 1'
3516 _vosrc="$_vosrc vo_tdfxfb.c"
3517 _vomodules="tdfxfb $_vomodules"
3518 else
3519 _def_tdfxfb='#undef HAVE_TDFXFB'
3520 _novomodules="tdfxfb $_novomodules"
3522 echores "$_tdfxfb"
3524 echocheck "tdfxvid"
3525 if test "$_tdfxvid" = yes ; then
3526 _def_tdfxvid='#define HAVE_TDFX_VID 1'
3527 _vosrc="$_vosrc vo_tdfx_vid.c"
3528 _vomodules="tdfx_vid $_vomodules"
3529 else
3530 _def_tdfxvid='#undef HAVE_TDFX_VID'
3531 _novomodules="tdfx_vid $_novomodules"
3533 echores "$_tdfxfb"
3535 echocheck "tga"
3536 if test "$_tga" = yes ; then
3537 _def_tga='#define HAVE_TGA 1'
3538 _vosrc="$_vosrc vo_tga.c"
3539 _vomodules="tga $_vomodules"
3540 else
3541 _def_tga='#undef HAVE_TGA'
3542 _novomodules="tga $_novomodules"
3544 echores "$_tga"
3546 echocheck "DirectFB headers presence"
3547 if test -z "$_inc_directfb" ; then
3548 for I in /usr/include /usr/local/include `echo $_inc_extra | sed s/-I//g`; do
3549 if test -d "$I/directfb" && test -f "$I/directfb/directfb.h" ; then
3550 _inc_directfb="-I$I/directfb"
3551 echores "yes (using $_inc_directfb)"
3552 break
3554 if test -d "$I" && test -f "$I/directfb.h" ; then
3555 _inc_directfb="-I$I"
3556 echores "yes (using $_inc_directfb)"
3557 break
3559 done
3560 if test -z "$_inc_directfb" ; then
3561 _directfb=no
3562 echores "not found"
3564 else
3565 echores "yes (using $_inc_directfb)"
3567 if test "$_inc_directfb" = "-I/usr/include" ; then
3568 _inc_directfb=""
3571 echocheck "DirectFB"
3572 if test "$_directfb" = auto ; then
3573 _directfb=no
3574 cat > $TMPC <<EOF
3575 #include <directfb.h>
3576 int main(void) { IDirectFB *foo; DirectFBInit(0,0); return 0; }
3578 linux && test -c /dev/fb0 && cc_check $_inc_directfb -ldirectfb && _directfb=yes
3581 if test "$_directfb" = yes; then
3582 cat > $TMPC << EOF
3583 #include <directfb_version.h>
3585 dfb_ver = DIRECTFB_MAJOR_VERSION DIRECTFB_MINOR_VERSION DIRECTFB_MICRO_VERSION
3588 if $_cc -E $TMPC $_inc_directfb > "$TMPO"; then
3589 _directfb_version=`sed -n 's/^dfb_ver[^1-9]*\(.*\)/\1/p' "$TMPO" | tr -d '() '`
3590 _def_directfb_version="#define DIRECTFBVERSION $_directfb_version"
3591 if test "$_directfb_version" -ge 913; then
3592 _res_comment="$_directfb_version"
3593 else
3594 _def_directfb_version='#undef DIRECTFBVERSION'
3595 _directfb=no
3596 _res_comment="version >=0.9.13 required"
3598 else
3599 _directfb=no
3600 _res_comment="failed to get version"
3603 echores "$_directfb"
3605 if test "$_directfb" = yes ; then
3606 _def_directfb='#define HAVE_DIRECTFB 1'
3607 if test "$_directfb_version" -ge 913; then
3608 _vosrc="$_vosrc vo_directfb2.c"
3609 _vomodules="directfb $_vomodules"
3610 _ld_directfb='-ldirectfb'
3613 if test "$_directfb_version" -ge 915; then
3614 _vosrc="$_vosrc vo_dfbmga.c"
3615 _vomodules="dfbmga $_vomodules"
3617 else
3618 _def_directfb='#undef HAVE_DIRECTFB'
3619 _novomodules="directfb $_novomodules"
3620 _inc_directfb=""
3624 echocheck "X11 headers presence"
3625 if test -z "$_inc_x11" ; then
3626 for I in /usr/X11/include /usr/X11R6/include /usr/include/X11R6 /usr/include /usr/openwin/include ; do
3627 if test -d "$I/X11" && test -f "$I/X11/Xlib.h" ; then
3628 _inc_x11="-I$I"
3629 echores "yes (using $I)"
3630 break
3632 done
3633 if test -z "$_inc_x11" ; then
3634 _x11=no
3635 echores "not found (check if the dev(el) packages are installed)"
3637 else
3638 echores "yes (using $_inc_x11)"
3640 if test "$_inc_x11" = "-I/usr/include" ; then
3641 _inc_x11=""
3645 echocheck "X11"
3646 if test "$_x11" != no ; then
3647 cat > $TMPC <<EOF
3648 #include <X11/Xlib.h>
3649 #include <X11/Xutil.h>
3650 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
3652 if test -z "$_x11_paths" ; then
3653 _x11_paths="/usr/X11R6/lib /usr/lib/X11R6 /usr/X11/lib /usr/lib32 /usr/openwin/lib /usr/X11R6/lib64 /usr/lib"
3655 for I in $_x11_paths ; do
3656 _ld_x11="-L$I -lXext -lX11 $_ld_sock $_ld_pthread"
3657 if netbsd; then
3658 _ld_x11="$_ld_x11 -Wl,-R$I"
3660 if test -d "$I" && cc_check $_inc_x11 $_ld_x11 ; then
3661 _x11=yes
3662 break
3664 done
3666 if test "$_x11" = yes ; then
3667 _def_x11='#define HAVE_X11 1'
3668 _vosrc="$_vosrc x11_common.c vo_x11.c vo_xover.c"
3669 _vomodules="x11 xover $_vomodules"
3670 _res_comment="using $I"
3671 else
3672 _x11=no
3673 _def_x11='#undef HAVE_X11'
3674 _inc_x11=''
3675 _ld_x11=''
3676 _novomodules="x11 $_novomodules"
3677 _res_comment="check if the dev(el) packages are installed"
3679 echores "$_x11"
3682 echocheck "DPMS"
3683 _xdpms3=no
3684 _xdpms4=no
3685 if test "$_x11" = yes ; then
3686 cat > $TMPC <<EOF
3687 #include <X11/Xmd.h>
3688 #include <X11/Xlib.h>
3689 #include <X11/Xutil.h>
3690 #include <X11/Xatom.h>
3691 #include <X11/extensions/dpms.h>
3692 int main(void) {
3693 (void) DPMSQueryExtension(0, 0, 0);
3696 cc_check $_inc_x11 -lXdpms $_ld_x11 && _xdpms3=yes
3697 cat > $TMPC <<EOF
3698 #include <X11/Xlib.h>
3699 #include <X11/extensions/dpms.h>
3700 int main(void) {
3701 (void) DPMSQueryExtension(0, 0, 0);
3704 cc_check $_inc_x11 $_ld_x11 && _xdpms4=yes
3706 if test "$_xdpms4" = yes ; then
3707 _def_xdpms='#define HAVE_XDPMS 1'
3708 echores "yes (using Xdpms 4)"
3709 elif test "$_xdpms3" = yes ; then
3710 _def_xdpms='#define HAVE_XDPMS 1'
3711 _ld_x11="-lXdpms $_ld_x11"
3712 echores "yes (using Xdpms 3)"
3713 else
3714 _def_xdpms='#undef HAVE_XDPMS'
3715 echores "no"
3719 echocheck "Xv"
3720 if test "$_x11" = yes && test "$_xv" != no ; then
3721 cat > $TMPC <<EOF
3722 #include <X11/Xlib.h>
3723 #include <X11/extensions/Xvlib.h>
3724 int main(void) {
3725 (void) XvGetPortAttribute(0, 0, 0, 0);
3726 (void) XvQueryPortAttributes(0, 0, 0);
3727 return 0; }
3729 _xv=no
3730 cc_check $_inc_x11 -lXv $_ld_x11 && _xv=yes
3731 else
3732 _xv=no
3734 if test "$_xv" = yes ; then
3735 _def_xv='#define HAVE_XV 1'
3736 _ld_xv='-lXv'
3737 _vosrc="$_vosrc vo_xv.c"
3738 _vomodules="xv $_vomodules"
3739 else
3740 _def_xv='#undef HAVE_XV'
3741 _novomodules="xv $_novomodules"
3743 echores "$_xv"
3746 echocheck "XvMC"
3747 if test "$_x11" = yes && test "$_xv" = yes && test "$_xvmc" != no ; then
3748 _xvmc=no
3749 cat > $TMPC <<EOF
3750 #include <X11/Xlib.h>
3751 #include <X11/extensions/Xvlib.h>
3752 #include <X11/extensions/XvMClib.h>
3753 int main(void) {
3754 (void) XvMCQueryExtension(0,0,0);
3755 (void) XvMCCreateContext(0,0,0,0,0,0,0);
3756 return 0; }
3758 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
3759 cc_check $_inc_x11 -lXvMC -l$_ld_tmp $_ld_xv $_ld_x11 && _xvmc=yes && _xvmclib="$_ld_tmp" && break
3760 done
3762 if test "$_xvmc" = yes ; then
3763 _def_xvmc='#define HAVE_XVMC 1'
3764 _ld_xvmc="-lXvMC -l$_xvmclib"
3765 _vosrc="$_vosrc vo_xvmc.c"
3766 _vomodules="xvmc $_vomodules"
3767 else
3768 _def_xvmc='#undef HAVE_XVMC'
3769 _novomodules="xvmc $_novomodules"
3771 echores "$_xvmc (using $_xvmclib)"
3774 echocheck "Xinerama"
3775 if test "$_x11" = yes && test "$_xinerama" != no ; then
3776 cat > $TMPC <<EOF
3777 #include <X11/Xlib.h>
3778 #include <X11/extensions/Xinerama.h>
3779 int main(void) { (void) XineramaIsActive(0); return 0; }
3781 _xinerama=no
3782 cc_check $_inc_x11 -lXinerama $_ld_x11 && _xinerama=yes
3783 else
3784 _xinerama=no
3786 if test "$_xinerama" = yes ; then
3787 _def_xinerama='#define HAVE_XINERAMA 1'
3788 _ld_xinerama='-lXinerama'
3789 else
3790 _def_xinerama='#undef HAVE_XINERAMA'
3792 echores "$_xinerama"
3795 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
3796 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
3797 # named 'X extensions' or something similar.
3798 # This check may be useful for future mplayer versions (to change resolution)
3799 # If you run into problems, remove '-lXxf86vm'.
3800 echocheck "Xxf86vm"
3801 if test "$_x11" = yes && test "$_vm" = auto ; then
3802 cat > $TMPC <<EOF
3803 #include <X11/Xlib.h>
3804 #include <X11/extensions/xf86vmode.h>
3805 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
3807 _vm=no
3808 cc_check $_inc_x11 -lXxf86vm $_ld_x11 && _vm=yes
3810 if test "$_vm" = yes ; then
3811 _def_vm='#define HAVE_XF86VM 1'
3812 _ld_vm='-lXxf86vm'
3813 else
3814 _def_vm='#undef HAVE_XF86VM'
3816 echores "$_vm"
3818 # Check for the presence of special keycodes, like audio control buttons
3819 # that XFree86 might have. Used to be bundled with the xf86vm check, but
3820 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
3821 # have these new keycodes.
3822 echocheck "XF86keysym"
3823 if test "$_xf86keysym" = auto; then
3824 _xf86keysym=no
3825 if test "$_x11" = yes ; then
3826 cat > $TMPC <<EOF
3827 #include <X11/Xlib.h>
3828 #include <X11/XF86keysym.h>
3829 int main(void) { return XF86XK_AudioPause; }
3831 cc_check $_inc_x11 $_ld_x11 && _xf86keysym=yes
3834 if test "$_xf86keysym" = yes ; then
3835 _def_xf86keysym='#define HAVE_XF86XK 1'
3836 else
3837 _def_xf86keysym='#undef HAVE_XF86XK'
3839 echores "$_xf86keysym"
3841 echocheck "DGA"
3842 if test "$_x11" = no ; then
3843 _dga=no
3845 # Version 2 is preferred to version 1 if available
3846 if test "$_dga" = auto ; then
3847 cat > $TMPC << EOF
3848 #include <X11/Xlib.h>
3849 #include <X11/extensions/xf86dga.h>
3850 int main (void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
3852 _dga=no
3853 cc_check $_inc_x11 -lXxf86dga -lXxf86vm $_ld_x11 && _dga=1
3855 cat > $TMPC << EOF
3856 #include <X11/Xlib.h>
3857 #include <X11/extensions/xf86dga.h>
3858 int main (void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
3860 cc_check $_inc_x11 -lXxf86dga $_ld_x11 && _dga=2
3863 _def_dga='#undef HAVE_DGA'
3864 _def_dga2='#undef HAVE_DGA2'
3865 if test "$_dga" = 1 ; then
3866 _def_dga='#define HAVE_DGA 1'
3867 _ld_dga='-lXxf86dga'
3868 _vosrc="$_vosrc vo_dga.c"
3869 _vomodules="dga $_vomodules"
3870 echores "yes (using DGA 1.0)"
3871 elif test "$_dga" = 2 ; then
3872 _def_dga='#define HAVE_DGA 1'
3873 _def_dga2='#define HAVE_DGA2 1'
3874 _ld_dga='-lXxf86dga'
3875 _vosrc="$_vosrc vo_dga.c"
3876 _vomodules="dga $_vomodules"
3877 echores "yes (using DGA 2.0)"
3878 elif test "$_dga" = no ; then
3879 echores "no"
3880 _novomodules="dga $_novomodules"
3881 else
3882 die "DGA version must be 1 or 2"
3886 echocheck "OpenGL"
3887 #Note: this test is run even with --enable-gl since we autodetect $_ld_gl
3888 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
3889 cat > $TMPC << EOF
3890 #include <GL/gl.h>
3891 int main(void) { return 0; }
3893 _gl=no
3894 if cc_check $_inc_x11 $_ld_x11 -lGL $_ld_lm ; then
3895 _gl=yes
3896 _ld_gl="-lGL $_ld_dl"
3897 elif cc_check $_inc_x11 $_ld_x11 -lGL $_ld_lm $_ld_pthread ; then
3898 _gl=yes
3899 _ld_gl="-lGL $_ld_pthread $_ld_dl"
3900 elif cc_check -lopengl32 ; then
3901 _gl=yes
3902 _gl_win32=yes
3903 _ld_gl="-lopengl32 -lgdi32"
3905 else
3906 _gl=no
3908 if test "$_gl" = yes ; then
3909 _def_gl='#define HAVE_GL 1'
3910 _vosrc="$_vosrc vo_gl.c vo_gl2.c gl_common.c"
3911 if test "$_gl_win32" = yes ; then
3912 _def_gl_win32='#define GL_WIN32 1'
3913 _vosrc="$_vosrc w32_common.c"
3914 _res_comment="win32 version"
3916 _vomodules="opengl $_vomodules"
3917 else
3918 _def_gl='#undef HAVE_GL'
3919 _def_gl_win32='#undef GL_WIN32'
3920 _novomodules="opengl $_novomodules"
3922 echores "$_gl"
3925 echocheck "/dev/mga_vid"
3926 if test "$_mga" = auto ; then
3927 _mga=no
3928 test -c /dev/mga_vid && _mga=yes
3930 if test "$_mga" = yes ; then
3931 _def_mga='#define HAVE_MGA 1'
3932 _vosrc="$_vosrc vo_mga.c"
3933 _vomodules="mga $_vomodules"
3934 else
3935 _def_mga='#undef HAVE_MGA'
3936 _novomodules="mga $_novomodules"
3938 echores "$_mga"
3941 # echocheck "syncfb"
3942 # _syncfb=no
3943 # test "$_mga" = yes && _syncfb=yes
3944 # if test "$_syncfb" = yes ; then
3945 # _def_syncfb='#define HAVE_SYNCFB 1'
3946 # _vosrc="$_vosrc vo_syncfb.c"
3947 # else
3948 # _def_syncfb='#undef HAVE_SYNCFB'
3949 # fi
3950 # echores "$_syncfb"
3953 echocheck "xmga"
3954 if test "$_xmga" = auto ; then
3955 _xmga=no
3956 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
3958 if test "$_xmga" = yes ; then
3959 _def_xmga='#define HAVE_XMGA 1'
3960 _vosrc="$_vosrc vo_xmga.c"
3961 _vomodules="xmga $_vomodules"
3962 else
3963 _def_xmga='#undef HAVE_XMGA'
3964 _novomodules="xmga $_novomodules"
3966 echores "$_xmga"
3969 echocheck "GGI"
3970 if test "$_ggi" = auto ; then
3971 cat > $TMPC << EOF
3972 #include <ggi/ggi.h>
3973 int main(void) { return 0; }
3975 _ggi=no
3976 cc_check -lggi && _ggi=yes
3978 if test "$_ggi" = yes ; then
3979 _def_ggi='#define HAVE_GGI 1'
3980 _ld_ggi='-lggi'
3981 _vosrc="$_vosrc vo_ggi.c"
3982 _vomodules="ggi $_vomodules"
3983 else
3984 _def_ggi='#undef HAVE_GGI'
3985 _novomodules="ggi $_novomodules"
3987 echores "$_ggi"
3989 echocheck "GGI extension: libggiwmh"
3990 if test "$_ggiwmh" = auto ; then
3991 _ggiwmh=no
3992 cat > $TMPC << EOF
3993 #include <ggi/ggi.h>
3994 #include <ggi/wmh.h>
3995 int main(void) { return 0; }
3997 cc_check -lggi -lggiwmh && _ggiwmh=yes
3999 # needed to get right output on obscure combination
4000 # like --disable-ggi --enable-ggiwmh
4001 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4002 _def_ggiwmh='#define HAVE_GGIWMH 1'
4003 _ld_ggi="$_ld_ggi -lggiwmh"
4004 else
4005 _ggiwmh=no
4006 _def_ggiwmh='#undef HAVE_GGIWMH'
4008 echores "$_ggiwmh"
4011 echocheck "AA"
4012 if test "$_aa" = auto ; then
4013 cat > $TMPC << EOF
4014 #include <aalib.h>
4015 extern struct aa_hardware_params aa_defparams;
4016 extern struct aa_renderparams aa_defrenderparams;
4017 int main(void) {
4018 aa_context *c;
4019 aa_renderparams *p;
4020 (void) aa_init(0, 0, 0);
4021 c = aa_autoinit(&aa_defparams);
4022 p = aa_getrenderparams();
4023 aa_autoinitkbd(c,0);
4024 return 0; }
4026 _aa=no
4027 for _ld_tmp in "-laa" "$_ld_x11 -laa" ; do
4028 cc_check $_ld_tmp && _ld_aa=$_ld_tmp && _aa=yes && break
4029 done
4031 if test "$_aa" = yes ; then
4032 _def_aa='#define HAVE_AA 1'
4033 if cygwin ; then
4034 _ld_aa=`aalib-config --libs | cut -d " " -f 2,5,6`
4036 _vosrc="$_vosrc vo_aa.c"
4037 _vomodules="aa $_vomodules"
4038 else
4039 _def_aa='#undef HAVE_AA'
4040 _novomodules="aa $_novomodules"
4042 echores "$_aa"
4045 echocheck "CACA"
4046 if test "$_caca" = auto ; then
4047 _caca=no
4048 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4049 cat > $TMPC << EOF
4050 #include <caca.h>
4051 int main(void) { (void) caca_init(); return 0; }
4053 cc_check `caca-config --libs` && _caca=yes
4056 if test "$_caca" = yes ; then
4057 _def_caca='#define HAVE_CACA 1'
4058 _inc_caca=`caca-config --cflags`
4059 _ld_caca=`caca-config --libs`
4060 _vosrc="$_vosrc vo_caca.c"
4061 _vomodules="caca $_vomodules"
4062 else
4063 _def_caca='#undef HAVE_CACA'
4064 _novomodules="caca $_novomodules"
4066 echores "$_caca"
4069 echocheck "SVGAlib"
4070 if test "$_svga" = auto ; then
4071 cat > $TMPC << EOF
4072 #include <vga.h>
4073 int main(void) { return 0; }
4075 _svga=no
4076 cc_check -lvga $_ld_lm && _svga=yes
4078 if test "$_svga" = yes ; then
4079 _def_svga='#define HAVE_SVGALIB 1'
4080 _ld_svga="-lvga"
4081 _vosrc="$_vosrc vo_svga.c"
4082 _vomodules="svga $_vomodules"
4083 else
4084 _def_svga='#undef HAVE_SVGALIB'
4085 _novomodules="svga $_novomodules"
4087 echores "$_svga"
4090 echocheck "FBDev"
4091 if test "$_fbdev" = auto ; then
4092 _fbdev=no
4093 linux && test -c /dev/fb0 && _fbdev=yes
4095 if test "$_fbdev" = yes ; then
4096 _def_fbdev='#define HAVE_FBDEV 1'
4097 _vosrc="$_vosrc vo_fbdev.c vo_fbdev2.c"
4098 _vomodules="fbdev $_vomodules"
4099 else
4100 _def_fbdev='#undef HAVE_FBDEV'
4101 _novomodules="fbdev $_novomodules"
4103 echores "$_fbdev"
4107 echocheck "DVB"
4108 if test "$_dvb" != no ; then
4109 _dvb=no
4110 cat >$TMPC << EOF
4111 #include <sys/poll.h>
4112 #include <sys/ioctl.h>
4113 #include <stdio.h>
4114 #include <time.h>
4115 #include <unistd.h>
4117 #include <ost/dmx.h>
4118 #include <ost/frontend.h>
4119 #include <ost/sec.h>
4120 #include <ost/video.h>
4121 #include <ost/audio.h>
4122 int main(void) {return 0;}
4124 if cc_check ; then
4125 _dvb=yes
4126 else
4127 for I in "$_inc_dvb" "-I/usr/src/DVB/ost/include" ; do
4128 if cc_check "$I" ; then
4129 _dvb=yes
4130 _inc_dvb="$I"
4131 _res_comment="using $_inc_dvb"
4132 break
4134 done
4135 test "$_dvb" = no && _res_comment="specify path to DVB/ost/include with --with-dvbincdir=DIR"
4138 echores "$_dvb"
4139 if test "$_dvb" = yes ; then
4140 _def_dvb='#define HAVE_DVB 1'
4141 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
4142 _aomodules="mpegpes(dvb) $_aomodules"
4143 _vomodules="mpegpes(dvb) $_vomodules"
4145 if test "$_dvbhead" != no ; then
4146 echocheck "DVB HEAD"
4147 if test "$_dvbhead" != no ; then
4148 _dvbhead=no
4150 cat >$TMPC << EOF
4151 #include <sys/poll.h>
4152 #include <sys/ioctl.h>
4153 #include <stdio.h>
4154 #include <time.h>
4155 #include <unistd.h>
4157 #include <linux/dvb/dmx.h>
4158 #include <linux/dvb/frontend.h>
4159 #include <linux/dvb/video.h>
4160 #include <linux/dvb/audio.h>
4161 int main(void) {return 0;}
4163 if cc_check ; then
4164 _dvbhead=yes
4165 else
4166 for I in "$_inc_dvb" "-I/usr/src/DVB/include" ; do
4167 if cc_check "$I" ; then
4168 _dvbhead=yes
4169 _inc_dvb="$I"
4170 _res_comment="using $_inc_dvb"
4171 break
4173 done
4174 test "$_dvbhead" = no && _res_comment="specify path to DVB/include (HEAD Version) with --with-dvbincdir=DIR"
4177 echores "$_dvbhead"
4178 if test "$_dvbhead" = yes ; then
4179 _def_dvb='#define HAVE_DVB_HEAD 1'
4180 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
4181 _aomodules="mpegpes(dvb) $_aomodules"
4182 _vomodules="mpegpes(dvb) $_vomodules"
4185 if test "$_dvbhead" = no && test "$_dvb" = no ; then
4186 _def_dvb='#undef HAVE_DVB'
4187 _def_dvb_in='#undef HAS_DVBIN_SUPPORT '
4188 _aomodules="mpegpes(file) $_aomodules"
4189 _vomodules="mpegpes(file) $_vomodules"
4192 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
4193 _dvbin=yes
4194 _inputmodules="dvb $_inputmodules"
4195 else
4196 _dvbin=no
4197 _noinputmodules="dvb $_noinputmodules"
4200 echocheck "PNG support"
4201 if test "$_png" = auto ; then
4202 _png=no
4203 if irix ; then
4204 # Don't check for -lpng on irix since it has its own libpng
4205 # incompatible with the GNU libpng
4206 _res_comment="disabled on irix (not GNU libpng)"
4207 else
4208 cat > $TMPC << EOF
4209 #include <png.h>
4210 #include <string.h>
4211 int main(void) {
4212 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4213 printf("libpng: %s\n", png_libpng_ver);
4214 return (strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver));
4217 if cc_check -lpng -lz $_ld_lm ; then
4218 if tmp_run ; then
4219 _png=yes
4220 else
4221 _res_comment="mismatch of library and header versions"
4226 echores "$_png"
4227 if test "$_png" = yes ; then
4228 _def_png='#define HAVE_PNG 1'
4229 _ld_png='-lpng -lz'
4230 _vosrc="$_vosrc vo_png.c"
4231 _vomodules="png $_vomodules"
4232 _mkf_png="yes"
4233 else
4234 _def_png='#undef HAVE_PNG'
4235 _novomodules="png $_novomodules"
4236 _mkf_png="no"
4239 echocheck "JPEG support"
4240 if test "$_jpg" = auto ; then
4241 _jpg=no
4242 cat > $TMPC << EOF
4243 #include <stdio.h>
4244 #include <stdlib.h>
4245 #include <setjmp.h>
4246 #include <string.h>
4247 #include <jpeglib.h>
4248 int main(void) {
4249 return 0;
4252 if cc_check -ljpeg $_ld_lm ; then
4253 if tmp_run ; then
4254 _jpg=yes
4258 echores "$_jpg"
4260 if test "$_jpg" = yes ; then
4261 _def_jpg='#define HAVE_JPEG 1'
4262 _vosrc="$_vosrc vo_jpeg.c"
4263 _vomodules="jpeg $_vomodules"
4264 _ld_jpg="-ljpeg"
4265 _mkf_jpg="yes"
4266 else
4267 _def_jpg='#undef HAVE_JPEG'
4268 _novomodules="jpeg $_novomodules"
4269 _mkf_jpg="no"
4274 echocheck "PNM support"
4275 if test "$_pnm" = yes; then
4276 _def_pnm="#define HAVE_PNM"
4277 _vosrc="$_vosrc vo_pnm.c"
4278 _vomodules="pnm $_vomodules"
4279 else
4280 _def_pnm="#undef HAVE_PNM"
4281 _novomodules="pnm $_novomodules"
4283 echores "$_pnm"
4287 echocheck "md5sum support"
4288 if test "$_md5sum" = yes; then
4289 _def_md5sum="#define HAVE_MD5SUM"
4290 _vosrc="$_vosrc vo_md5sum.c md5sum.c"
4291 _vomodules="md5sum $_vomodules"
4292 else
4293 _def_md5sum="#undef HAVE_MD5SUM"
4294 _novomodules="md5sum $_novomodules"
4296 echores "$_md5sum"
4300 echocheck "GIF support"
4301 # This is to appease people who want to force gif support.
4302 # If it is forced to yes, then we still do checks to determine
4303 # which gif library to use.
4304 if test "$_gif" = yes ; then
4305 _force_gif=yes
4306 _gif=auto
4309 if test "$_gif" = auto ; then
4310 _gif=no
4311 cat > $TMPC << EOF
4312 #include <gif_lib.h>
4313 int main(void) {
4314 return 0;
4317 for _ld_tmp in "-lungif" "-lungif $_ld_x11" "-lgif" "-lgif $_ld_x11" ; do
4318 cc_check $_ld_tmp && tmp_run && _ld_gif="$_ld_tmp" && _gif=yes && break
4319 done
4322 # If no library was found, and the user wants support forced,
4323 # then we force it on with libgif, as this is the safest
4324 # assumption IMHO. (libungif & libregif both create symbolic
4325 # links to libgif. We also assume that no x11 support is needed,
4326 # because if you are forcing this, then you _should_ know what
4327 # you are doing. [ Besides, package maintainers should never
4328 # have compiled x11 deps into libungif in the first place. ] )
4329 # </rant>
4330 # --Joey
4331 if test "$_force_gif" = yes && test "$_gif" = no ; then
4332 _gif=yes
4333 _ld_gif="-lgif"
4336 if test "$_gif" = yes ; then
4337 _def_gif='#define HAVE_GIF 1'
4338 _vosrc="$_vosrc vo_gif89a.c"
4339 _codecmodules="gif $_codecmodules"
4340 _vomodules="gif89a $_vomodules"
4341 _mkf_gif="yes"
4342 _res_comment="(old version, some encoding functions disabled)"
4343 _def_gif_4='#undef HAVE_GIF_4'
4345 cat > $TMPC << EOF
4346 #include <signal.h>
4347 #include <gif_lib.h>
4348 void catch() { exit(1); }
4349 int main(void) {
4350 signal(SIGSEGV, catch); // catch segfault
4351 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4352 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4353 return 0;
4356 if cc_check "$_ld_gif" && tmp_run ; then
4357 _def_gif_4='#define HAVE_GIF_4 1'
4358 _res_comment=""
4360 else
4361 _def_gif='#undef HAVE_GIF'
4362 _def_gif_4='#undef HAVE_GIF_4'
4363 _novomodules="gif89a $_novomodules"
4364 _nocodecmodules="gif $_nocodecmodules"
4365 _mkf_gif="no"
4367 echores "$_gif"
4370 case "$_gif" in yes*)
4371 echocheck "broken giflib workaround"
4372 _def_gif_tvt_hack='#define HAVE_GIF_TVT_HACK 1'
4374 cat > $TMPC << EOF
4375 #include <gif_lib.h>
4376 int main(void) {
4377 GifFileType gif;
4378 printf("UserData is at address %p\n", gif.UserData);
4379 return 0;
4382 if cc_check "$_ld_gif" && tmp_run ; then
4383 _def_gif_tvt_hack='#undef HAVE_GIF_TVT_HACK'
4384 echores "disabled"
4385 else
4386 echores "enabled"
4389 esac
4392 echocheck "VESA support"
4393 if test "$_vesa" = auto ; then
4394 cat > $TMPC << EOF
4395 #include <vbe.h>
4396 int main(void) { vbeVersion(); return 0; }
4398 _vesa=no
4399 cc_check -lvbe -llrmi && _vesa=yes
4401 if test "$_vesa" = yes ; then
4402 _def_vesa='#define HAVE_VESA 1'
4403 _ld_vesa="-lvbe -llrmi"
4404 _vosrc="$_vosrc vo_vesa.c vesa_lvo.c gtf.c"
4405 _vomodules="vesa $_vomodules"
4406 else
4407 _def_vesa='#undef HAVE_VESA'
4408 _novomodules="vesa $_novomodules"
4410 echores "$_vesa"
4412 #################
4413 # VIDEO + AUDIO #
4414 #################
4417 echocheck "SDL"
4418 if test -z "$_sdlconfig" ; then
4419 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
4420 _sdlconfig="sdl-config"
4421 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
4422 _sdlconfig="sdl11-config"
4423 else
4424 _sdlconfig=false
4427 if test "$_sdl" = auto || test "$_sdl" = yes ; then
4428 cat > $TMPC << EOF
4429 #include <SDL.h>
4430 int main(int argc, char *argv[]) { return 0; }
4432 _sdl=no
4433 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4434 if cc_check `$_sdlconfig --cflags` `$_sdlconfig --libs` >>"$TMPLOG" 2>&1 ; then
4435 _sdlversion=`$_sdlconfig --version | sed 's/[^0-9]//g'`
4436 if test "$_sdlversion" -gt 116 ; then
4437 if test "$_sdlversion" -lt 121 ; then
4438 _def_sdlbuggy='#define BUGGY_SDL'
4439 else
4440 _def_sdlbuggy='#undef BUGGY_SDL'
4442 _sdl=yes
4443 else
4444 _res_comment=outdated
4449 if test "$_sdl" = yes ; then
4450 _def_sdl='#define HAVE_SDL 1'
4451 if cygwin ; then
4452 _ld_sdl=`$_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/`
4453 _inc_sdl=`$_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/`
4454 elif mingw32 ; then
4455 _ld_sdl=`$_sdlconfig --libs | sed s/-mwindows//`
4456 _inc_sdl=`$_sdlconfig --cflags | sed s/-Dmain=SDL_main//`
4457 else
4458 _ld_sdl=`$_sdlconfig --libs`
4459 _inc_sdl=`$_sdlconfig --cflags`
4461 _vosrc="$_vosrc vo_sdl.c"
4462 _vomodules="sdl $_vomodules"
4463 _aosrc="$_aosrc ao_sdl.c"
4464 _aomodules="sdl $_aomodules"
4465 _res_comment="using $_sdlconfig"
4466 else
4467 _def_sdl='#undef HAVE_SDL'
4468 _novomodules="sdl $_novomodules"
4469 _noaomodules="sdl $_noaomodules"
4471 echores "$_sdl"
4473 echocheck "Windows waveout"
4474 if test "$_win32waveout" = auto ; then
4475 cat > $TMPC << EOF
4476 #include <windows.h>
4477 #include <mmsystem.h>
4478 int main(void) { return 0; }
4480 _win32waveout=no
4481 cc_check -lwinmm && _win32waveout=yes
4483 if test "$_win32waveout" = yes ; then
4484 _def_win32waveout='#define HAVE_WIN32WAVEOUT 1'
4485 _ld_win32libs="-lwinmm $_ld_win32libs"
4486 _aosrc="$_aosrc ao_win32.c"
4487 _aomodules="win32 $_aomodules"
4488 else
4489 _def_win32waveout='#undef HAVE_WIN32WAVEOUT'
4490 _noaomodules="win32 $_noaomodules"
4492 echores "$_win32waveout"
4494 echocheck "Directx"
4495 if test "$_directx" = auto ; then
4496 cat > $TMPC << EOF
4497 #include <windows.h>
4498 #include <ddraw.h>
4499 #include <dsound.h>
4500 int main(void) { return 0; }
4502 _directx=no
4503 cc_check -lgdi32 && _directx=yes
4505 if test "$_directx" = yes ; then
4506 _def_directx='#define HAVE_DIRECTX 1'
4507 _ld_win32libs="-lgdi32 $_ld_win32libs"
4508 _vosrc="$_vosrc vo_directx.c"
4509 _vomodules="directx $_vomodules"
4510 _aosrc="$_aosrc ao_dsound.c"
4511 _aomodules="dsound $_aomodules"
4512 else
4513 _def_directx='#undef HAVE_DIRECTX'
4514 _novomodules="directx $_novomodules"
4515 _noaomodules="dsound $_noaomodules"
4517 echores "$_directx"
4519 echocheck "NAS"
4520 if test "$_nas" = auto ; then
4521 cat > $TMPC << EOF
4522 #include <audio/audiolib.h>
4523 int main(void) { return 0; }
4525 _nas=no
4526 cc_check -laudio $_inc_x11 -lXt $_ld_x11 $_ld_lm && _nas=yes
4528 if test "$_nas" = yes ; then
4529 _def_nas='#define HAVE_NAS 1'
4530 _ld_nas="-laudio -lXt $_ld_x11"
4531 _aosrc="$_aosrc ao_nas.c"
4532 _aomodules="nas $_aomodules"
4533 else
4534 _noaomodules="nas $_noaomodules"
4535 _def_nas='#undef HAVE_NAS'
4537 echores "$_nas"
4539 echocheck "DXR2"
4540 if test "$_dxr2" = auto; then
4541 _dxr2=no
4542 cat > $TMPC << EOF
4543 #include <dxr2ioctl.h>
4544 int main(void) { return 0; }
4546 for _inc_dxr2 in "$_inc_dxr2" \
4547 "-I/usr/local/include/dxr2" \
4548 "-I/usr/include/dxr2"; do
4549 cc_check $_inc_dxr2 && _dxr2=yes && break
4550 done
4552 if test "$_dxr2" = yes; then
4553 _def_dxr2='#define HAVE_DXR2 1'
4554 _vosrc="$_vosrc vo_dxr2.c"
4555 _aosrc="$_aosrc ao_dxr2.c"
4556 _aomodules="dxr2 $_aomodules"
4557 _vomodules="dxr2 $_vomodules"
4558 _res_comment="using $_inc_dxr2"
4559 else
4560 _def_dxr2='#undef HAVE_DXR2'
4561 _noaomodules="dxr2 $_noaomodules"
4562 _novomodules="dxr2 $_novomodules"
4563 _inc_dxr2=""
4565 echores "$_dxr2"
4567 echocheck "DXR3/H+"
4568 if test "$_dxr3" = auto ; then
4569 cat > $TMPC << EOF
4570 #include <linux/em8300.h>
4571 int main(void) { return 0; }
4573 _dxr3=no
4574 cc_check && _dxr3=yes
4576 if test "$_dxr3" = yes ; then
4577 _def_dxr3='#define HAVE_DXR3 1'
4578 _vosrc="$_vosrc vo_dxr3.c"
4579 _vomodules="dxr3 $_vomodules"
4580 else
4581 _def_dxr3='#undef HAVE_DXR3'
4582 _novomodules="dxr3 $_novomodules"
4583 if test "$_mp1e" = auto ; then
4584 # we don't need mp1e
4585 _mp1e=no
4588 echores "$_dxr3"
4590 echocheck "libmp1e"
4591 if test "$_mmx" = no ; then
4592 # mp1e REQUIRES mmx!
4593 _mp1e=no
4595 if test "$_mp1e" != no ; then
4596 _mp1e=yes
4597 _def_mp1e='#define USE_MP1E'
4598 _ld_mp1e='libmp1e/libmp1e.a'
4599 _dep_mp1e='libmp1e/libmp1e.a'
4600 else
4601 _mp1e=no
4602 _def_mp1e='#undef USE_MP1E'
4603 _ld_mp1e=""
4604 _dep_mp1e=''
4606 echores "$_mp1e"
4609 echocheck "libfame"
4610 if test "$_fame" = auto ; then
4611 _fame=no
4612 test "$_dxr2" = yes && _fame=auto
4613 test "$_dxr3" = yes && _fame=auto
4614 test "$_dvb" = yes && _fame=auto
4616 if test "$_fame" = auto ; then
4617 _fame=no
4618 if test -d libfame && test -f libfame/fame.h ; then
4619 # disable fame on cygwin as no sense to port - atmos
4620 cygwin || _fame=yes
4621 else
4622 _res_comment="no fame dir"
4625 echores "$_fame"
4627 _def_fame='#undef USE_LIBFAME'
4628 if test "$_fame" = yes ; then
4629 _def_fame='#define USE_LIBFAME 1'
4630 _ld_fame='libfame/libfame.a'
4634 #########
4635 # AUDIO #
4636 #########
4639 echocheck "OSS Audio"
4640 if test "$_ossaudio" = auto ; then
4641 cat > $TMPC << EOF
4642 #include <sys/ioctl.h>
4643 $_inc_soundcard
4644 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
4646 _ossaudio=no
4647 cc_check && _ossaudio=yes
4649 if test "$_ossaudio" = yes ; then
4650 _def_ossaudio='#define USE_OSS_AUDIO 1'
4651 _aosrc="$_aosrc ao_oss.c"
4652 _aomodules="oss $_aomodules"
4653 if test "$_linux_devfs" = yes; then
4654 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
4655 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
4656 else
4657 cat > $TMPC << EOF
4658 #include <sys/ioctl.h>
4659 $_inc_soundcard
4660 #ifdef OPEN_SOUND_SYSTEM
4661 int main(void) { return 0; }
4662 #else
4663 #error Not the real thing
4664 #endif
4666 _real_ossaudio=no
4667 cc_check && _real_ossaudio=yes
4668 if test "$_real_ossaudio" = yes; then
4669 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4670 elif netbsd || openbsd ; then
4671 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
4672 _ld_arch="$_ld_arch -lossaudio"
4673 else
4674 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4676 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
4678 else
4679 _def_ossaudio='#undef USE_OSS_AUDIO'
4680 _def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
4681 _def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
4682 _noaomodules="oss $_noaomodules"
4684 echores "$_ossaudio"
4687 echocheck "aRts"
4688 if test "$_arts" = auto ; then
4689 _arts=no
4690 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
4692 cat > $TMPC << EOF
4693 #include <artsc.h>
4694 int main(void) { return 0; }
4696 cc_check `artsc-config --libs` `artsc-config --cflags` && tmp_run && _arts=yes
4701 if test "$_arts" = yes ; then
4702 _def_arts='#define USE_ARTS 1'
4703 _aosrc="$_aosrc ao_arts.c"
4704 _aomodules="arts $_aomodules"
4705 _ld_arts=`artsc-config --libs`
4706 _inc_arts=`artsc-config --cflags`
4707 else
4708 _noaomodules="arts $_noaomodules"
4710 echores "$_arts"
4713 echocheck "EsounD"
4714 if test "$_esd" = auto ; then
4715 _esd=no
4716 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
4718 cat > $TMPC << EOF
4719 #include <esd.h>
4720 int main(void) { return 0; }
4722 cc_check `esd-config --libs` `esd-config --cflags` && tmp_run && _esd=yes
4726 echores "$_esd"
4728 if test "$_esd" = yes ; then
4729 _def_esd='#define USE_ESD 1'
4730 _aosrc="$_aosrc ao_esd.c"
4731 _aomodules="esd $_aomodules"
4732 _ld_esd=`esd-config --libs`
4733 _inc_esd=`esd-config --cflags`
4735 echocheck "esd_get_latency()"
4736 cat > $TMPC << EOF
4737 #include <esd.h>
4738 int main(void) { return esd_get_latency(0); }
4740 cc_check `esd-config --libs` `esd-config --cflags` && _esd_latency=yes && _def_esd_latency='#define HAVE_ESD_LATENCY'
4741 echores "$_esd_latency"
4742 else
4743 _def_esd='#undef USE_ESD'
4744 _def_esd_latency='#undef HAVE_ESD_LATENCY'
4745 _noaomodules="esd $_noaomodules"
4748 echocheck "Polyp"
4749 if test "$_polyp" = auto ; then
4750 _polyp=no
4751 if ( pkg-config --exists 'polyplib >= 0.6 polyplib-error >= 0.6 polyplib-mainloop >= 0.6' ) >> "$TMPLOG" 2>&1 ; then
4753 cat > $TMPC << EOF
4754 #include <polyp/polyplib.h>
4755 #include <polyp/mainloop.h>
4756 #include <polyp/polyplib-error.h>
4757 int main(void) { return 0; }
4759 cc_check `pkg-config --libs --cflags polyplib polyplib-error polyplib-mainloop` && tmp_run && _polyp=yes
4763 echores "$_polyp"
4765 if test "$_polyp" = yes ; then
4766 _def_polyp='#define USE_POLYP 1'
4767 _aosrc="$_aosrc ao_polyp.c"
4768 _aomodules="polyp $_aomodules"
4769 _ld_polyp=`pkg-config --libs polyplib polyplib-error polyplib-mainloop`
4770 _inc_polyp=`pkg-config --cflags polyplib polyplib-error polyplib-mainloop`
4771 else
4772 _def_polyp='#undef USE_POLYP'
4773 _noaomodules="polyp $_noaomodules"
4777 echocheck "JACK"
4778 if test "$_jack" = auto ; then
4779 _jack=yes
4781 cat > $TMPC << EOF
4782 #include <jack/jack.h>
4783 int main(void) { jack_client_new("test"); return 0; }
4785 if cc_check -ljack ; then
4786 _ld_jack="-ljack"
4787 elif cc_check `pkg-config --libs --cflags --silence-errors jack` ; then
4788 _ld_jack="`pkg-config --libs jack`"
4789 _inc_jack="`pkg-config --cflags jack`"
4790 else
4791 _jack=no
4795 if test "$_jack" = yes ; then
4796 _def_jack='#define USE_JACK 1'
4797 _aosrc="$_aosrc ao_jack.c"
4798 _aomodules="jack $_aomodules"
4799 else
4800 _noaomodules="jack $_noaomodules"
4802 echores "$_jack"
4804 echocheck "OpenAL"
4805 if test "$_openal" = auto ; then
4806 _openal=no
4807 cat > $TMPC << EOF
4808 #include <AL/al.h>
4809 int main(void) {
4810 alSourceQueueBuffers(0, 0, 0);
4811 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
4812 return 0;
4815 if cc_check -lopenal ; then
4816 _ld_openal="-lopenal"
4817 _openal=yes
4820 if test "$_openal" = yes ; then
4821 _def_openal='#define USE_OPENAL 1'
4822 _aosrc="$_aosrc ao_openal.c"
4823 _aomodules="openal $_aomodules"
4824 else
4825 _noaomodules="openal $_noaomodules"
4827 echores "$_openal"
4829 echocheck "ALSA audio"
4830 if test "$_alsa" != no ; then
4831 _alsa=no
4832 cat > $TMPC << EOF
4833 #include <sys/asoundlib.h>
4834 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
4835 #error "alsa version != 0.5.x"
4836 #endif
4837 int main(void) { return 0; }
4839 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
4841 cat > $TMPC << EOF
4842 #include <sys/asoundlib.h>
4843 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
4844 #error "alsa version != 0.9.x"
4845 #endif
4846 int main(void) { return 0; }
4848 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
4849 cat > $TMPC << EOF
4850 #include <alsa/asoundlib.h>
4851 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
4852 #error "alsa version != 0.9.x"
4853 #endif
4854 int main(void) { return 0; }
4856 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
4858 cat > $TMPC << EOF
4859 #include <sys/asoundlib.h>
4860 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
4861 #error "alsa version != 1.0.x"
4862 #endif
4863 int main(void) { return 0; }
4865 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
4866 cat > $TMPC << EOF
4867 #include <alsa/asoundlib.h>
4868 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
4869 #error "alsa version != 1.0.x"
4870 #endif
4871 int main(void) { return 0; }
4873 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
4875 _def_alsa5='#undef HAVE_ALSA5'
4876 _def_alsa9='#undef HAVE_ALSA9'
4877 _def_alsa1x='#undef HAVE_ALSA1X'
4878 _def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
4879 _def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
4880 if test "$_alsaver" ; then
4881 _alsa=yes
4882 if test "$_alsaver" = '0.5.x' ; then
4883 _aosrc="$_aosrc ao_alsa5.c"
4884 _aomodules="alsa5 $_aomodules"
4885 _def_alsa5='#define HAVE_ALSA5 1'
4886 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4887 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
4888 elif test "$_alsaver" = '0.9.x-sys' ; then
4889 _aosrc="$_aosrc ao_alsa.c"
4890 _aomodules="alsa $_aomodules"
4891 _def_alsa9='#define HAVE_ALSA9 1'
4892 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4893 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
4894 elif test "$_alsaver" = '0.9.x-alsa' ; then
4895 _aosrc="$_aosrc ao_alsa.c"
4896 _aomodules="alsa $_aomodules"
4897 _def_alsa9='#define HAVE_ALSA9 1'
4898 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
4899 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
4900 elif test "$_alsaver" = '1.0.x-sys' ; then
4901 _aosrc="$_aosrc ao_alsa.c"
4902 _aomodules="alsa $_aomodules"
4903 _def_alsa1x="#define HAVE_ALSA1X 1"
4904 _def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4905 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
4906 elif test "$_alsaver" = '1.0.x-alsa' ; then
4907 _aosrc="$_aosrc ao_alsa.c"
4908 _aomodules="alsa $_aomodules"
4909 _def_alsa1x="#define HAVE_ALSA1X 1"
4910 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
4911 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
4912 else
4913 _alsa=no
4914 _res_comment="unknown version"
4916 _ld_alsa="-lasound $_ld_dl $_ld_pthread"
4917 else
4918 _noaomodules="alsa $_noaomodules"
4920 echores "$_alsa"
4923 echocheck "Sun audio"
4924 if test "$_sunaudio" = auto ; then
4925 cat > $TMPC << EOF
4926 #include <sys/types.h>
4927 #include <sys/audioio.h>
4928 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
4930 _sunaudio=no
4931 cc_check && _sunaudio=yes
4933 if test "$_sunaudio" = yes ; then
4934 _def_sunaudio='#define USE_SUN_AUDIO 1'
4935 _aosrc="$_aosrc ao_sun.c"
4936 _aomodules="sun $_aomodules"
4937 else
4938 _def_sunaudio='#undef USE_SUN_AUDIO'
4939 _noaomodules="sun $_noaomodules"
4941 echores "$_sunaudio"
4944 echocheck "Sun mediaLib"
4945 if test "$_mlib" = auto ; then
4946 _mlib=no
4947 test -z "$_mlibdir" && _mlibdir=/opt/SUNWmlib
4948 cat > $TMPC << EOF
4949 #include <mlib.h>
4950 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
4952 cc_check -I${_mlibdir}/include -L${_mlibdir}/lib -lmlib && _mlib=yes
4954 if test "$_mlib" = yes ; then
4955 _def_mlib='#define HAVE_MLIB 1'
4956 _inc_mlib=" -I${_mlibdir}/include "
4957 _ld_mlib=" -L${_mlibdir}/lib -R${_mlibdir}/lib -lmlib "
4958 else
4959 _def_mlib='#undef HAVE_MLIB'
4961 echores "$_mlib"
4964 echocheck "SGI audio"
4965 if test "$_sgiaudio" = auto ; then
4966 # check for SGI audio
4967 cat > $TMPC << EOF
4968 #include <dmedia/audio.h>
4969 int main(void) { return 0; }
4971 _sgiaudio=no
4972 cc_check && _sgiaudio=yes
4974 if test "$_sgiaudio" = "yes" ; then
4975 _def_sgiaudio='#define USE_SGI_AUDIO 1'
4976 _ld_sgiaudio='-laudio'
4977 _aosrc="$_aosrc ao_sgi.c"
4978 _aomodules="sgi $_aomodules"
4979 else
4980 _def_sgiaudio='#undef USE_SGI_AUDIO'
4981 _noaomodules="sgi $_noaomodules"
4983 echores "$_sgiaudio"
4986 echocheck "VCD support"
4987 if linux || bsdos || freebsd || netbsd || sunos || darwin ; then
4988 _inputmodules="vcd $_inputmodules"
4989 _def_vcd='#define HAVE_VCD 1'
4990 echores "ok"
4991 else
4992 _def_vcd='#undef HAVE_VCD'
4993 _noinputmodules="vcd $_noinputmodules"
4994 echores "not supported on this OS"
4997 echocheck "DVD support (libmpdvdkit)"
4998 if test "$_dvdkit" = auto ; then
4999 _dvdkit=no
5000 if linux || freebsd || netbsd || darwin || openbsd || win32 || sunos || hpux; then
5001 test -f "./libmpdvdkit2/Makefile" && _dvdkit=yes
5002 test -f "./libmpdvdkit/Makefile" && _dvdkit=yes
5005 if test "$_dvdkit" = yes ; then
5006 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
5007 if test -f "./libmpdvdkit2/Makefile" ; then
5008 _inputmodules="mpdvdkit2 $_inputmodules"
5009 _dvdread=libmpdvdkit2
5010 _dvdkit2=yes
5011 _dvdkit=no
5012 else
5013 _inputmodules="mpdvdkit $_inputmodules"
5014 _dvdread=libmpdvdkit
5016 else
5017 _noinputmodules="mpdvdkit $_noinputmodules"
5019 _def_dvd_linux='#undef HAVE_LINUX_DVD_STRUCT'
5020 _def_dvd_bsd='#undef HAVE_BSD_DVD_STRUCT'
5021 _dev_dvd_openbsd='#undef HAVE_OPENBSD_DVD_STRUCT'
5022 _def_dvd_darwin='#undef DARWIN_DVD_IOCTL'
5023 if linux || netbsd || openbsd || bsdos ; then
5024 _def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5025 if openbsd ; then
5026 _dev_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5028 else
5029 if freebsd ; then
5030 _def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5031 else
5032 if darwin ; then
5033 _def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5037 else
5038 _noinputmodules="mpdvdkit $_noinputmodules"
5040 if test "$_dvdkit" = yes || test "$_dvdkit2" = yes; then
5041 _have_dvd=yes
5042 echores "yes"
5043 else
5044 echores "no"
5047 echocheck "DVD support (libdvdread)"
5048 if test "$_dvdread" = auto ; then
5049 cat > $TMPC << EOF
5050 #include <inttypes.h>
5051 #include <dvdread/dvd_reader.h>
5052 #include <dvdread/ifo_types.h>
5053 #include <dvdread/ifo_read.h>
5054 #include <dvdread/nav_read.h>
5055 int main(void) { return 0; }
5057 _dvdread=no
5058 if test "$_dl" = yes; then
5059 cc_check \
5060 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -ldvdread $_ld_dl && \
5061 _dvdread=yes
5064 _def_mpdvdkit="#undef USE_MPDVDKIT"
5065 case "$_dvdread" in
5066 yes)
5067 _largefiles=yes
5068 _def_dvdread='#define USE_DVDREAD 1'
5069 _ld_dvdread='-ldvdread'
5070 _inputmodules="dvdread $_inputmodules"
5071 _have_dvd=yes
5072 echores "yes"
5075 _def_dvdread='#undef USE_DVDREAD'
5076 _noinputmodules="dvdread $_noinputmodules"
5077 echores "no"
5079 libmpdvdkit)
5080 _largefiles=yes
5081 _def_dvdread='#define USE_DVDREAD 1'
5082 _ld_dvdread='-Llibmpdvdkit -lmpdvdkit'
5083 _noinputmodules="dvdread $_noinputmodules"
5084 _def_mpdvdkit="#define USE_MPDVDKIT 1"
5085 _have_dvd=yes
5086 echores "disabled by libmpdvdkit"
5088 libmpdvdkit2)
5089 _largefiles=yes
5090 _def_dvdread='#define USE_DVDREAD 1'
5091 _ld_dvdread='-Llibmpdvdkit2 -lmpdvdkit'
5092 _noinputmodules="dvdread $_noinputmodules"
5093 _def_mpdvdkit="#define USE_MPDVDKIT 2"
5094 _have_dvd=yes
5095 echores "disabled by libmpdvdkit2"
5097 esac
5099 if test "$_have_dvd" = yes ; then
5100 _def_have_dvd='#define HAVE_DVD 1'
5101 else
5102 _def_have_dvd='#undef HAVE_DVD'
5105 # dvdnav disabled, it does not work
5106 # echocheck "DVD support (libdvdnav)"
5107 # if test "$_dvdnav" = yes ; then
5108 # cat > $TMPC <<EOF
5109 # #include <dvdnav.h>
5110 # int main(void) { dvdnav_t *dvd=0; return 0; }
5111 # EOF
5112 # _dvdnav=no
5113 # test -n "$_dvdnavdir" && _legal_dvdnavdir=-L$_dvdnavdir/.libs
5114 # if test -z "$_dvdnavconfig" ; then
5115 # if ( dvdnav-config --version ) >/dev/null 2>&1 ; then
5116 # _dvdnavconfig="dvdnav-config"
5117 # fi
5118 # fi
5119 # test -z "$_dvdnavdir" && test -n "$_dvdnavconfig" && _dvdnavdir=`$_dvdnavconfig --cflags`
5120 # _used_css=
5121 # test "$_dvdkit" = no && test "$_dvdkit2" = no && _used_css=$_ld_css
5122 # cc_check $_inc_extra -I$_dvdnavdir $_legal_dvdnavdir -ldvdnav $_used_css $_ld_dl $_ld_pthread && _dvdnav=yes
5123 # fi
5124 # if test "$_dvdnav" = yes ; then
5125 # _largefiles=yes
5126 # _def_dvdnav='#define USE_DVDNAV 1'
5127 # if test -n "$_legal_dvdnavdir" ; then
5128 # _ld_css="$_ld_css $_legal_dvdnavdir -ldvdnav"
5129 # elif test -n "$_dvdnavconfig" ; then
5130 # _ld_css="$_ld_css `$_dvdnavconfig --libs`"
5131 # else
5132 # _ld_css="$_ld_css -ldvdnav"
5133 # fi
5134 # if test -n "$_dvdnavconfig" ; then
5135 # _dvdnav_version=`$_dvdnavconfig --version | sed "s/\.//g"`
5136 # _def_dvdnav_version="#define DVDNAVVERSION $_dvdnav_version"
5137 # fi
5138 # if test -n "$_dvdnavdir" ; then
5139 # _inc_extra="$_inc_extra -I$_dvdnavdir"
5140 # fi
5141 # _inputmodules="dvdnav $_inputmodules"
5142 # echores "yes"
5143 # else
5144 # _def_dvdnav='#undef USE_DVDNAV'
5145 # _noinputmodules="dvdnav $_noinputmodules"
5146 # echores "no"
5147 # fi
5149 echocheck "cdparanoia"
5150 if test "$_cdparanoia" = auto ; then
5151 cat > $TMPC <<EOF
5152 #include <cdda_interface.h>
5153 #include <cdda_paranoia.h>
5154 // This need a better test. How ?
5155 int main(void) { return 1; }
5157 _cdparanoia=no
5158 for _inc_tmp in "$_inc_cdparanoia" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5159 cc_check $_inc_tmp $_ld_cdparanoia -lcdda_interface -lcdda_paranoia $_ld_lm && _inc_cdparanoia="$_inc_tmp" && _cdparanoia=yes && break
5160 done
5162 if test "$_cdparanoia" = yes ; then
5163 _def_cdparanoia='#define HAVE_CDDA'
5164 _inputmodules="cdda $_inputmodules"
5165 _ld_cdparanoia="$_ld_cdparanoia -lcdda_interface -lcdda_paranoia"
5166 openbsd && _ld_cdparanoia="$_ld_cdparanoia -lutil"
5167 else
5168 _def_cdparanoia='#undef HAVE_CDDA'
5169 _noinputmodules="cdda $_noinputmodules"
5171 echores "$_cdparanoia"
5174 echocheck "libcdio"
5175 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5176 if ( pkg-config --modversion libcdio) > /dev/null 2>&1 ; then
5177 cat > $TMPC << EOF
5178 #include <stdio.h>
5179 #include <cdio/version.h>
5180 #include <cdio/cdda.h>
5181 #include <cdio/paranoia.h>
5182 int main()
5184 printf("%s\n", CDIO_VERSION);
5185 return 0;
5189 _libcdio=no
5190 for _inc_tmp in "$_inc_libcdio" "-I/usr/include/cdio" "-I/usr/local/include/cdio" ; do
5191 cc_check `pkg-config --cflags --libs libcdio_paranoia` $_inc_tmp $_ld_lm \
5192 && _inc_libcdio="$_inc_tmp" && ( $TMPO >> "$TMPLOG" ) \
5193 && _libcdio=yes && break
5194 done
5195 else
5196 _libcdio=no
5199 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5200 _def_libcdio='#define HAVE_LIBCDIO'
5201 _def_cdparanoia='#define HAVE_CDDA'
5202 _def_havelibcdio='yes'
5203 _inputmodules="cdda $_inputmodules"
5204 _inc_libcdio=`pkg-config --cflags libcdio`
5205 _ld_libcdio=`pkg-config --libs libcdio_paranoia`
5206 else
5207 if test "$_cdparanoia" = yes ; then
5208 _res_comment="(using cdparanoia)"
5210 _def_libcdio='#undef HAVE_LIBCDIO'
5211 _def_havelibcdio='no'
5213 echores "$_libcdio"
5216 echocheck "freetype >= 2.0.9"
5218 # freetype depends on iconv
5219 if test "$_iconv" = no ; then
5220 _freetype=no
5221 _res_comment="iconv support needed"
5224 if test "$_freetype" = auto ; then
5225 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5226 cat > $TMPC << EOF
5227 #include <stdio.h>
5228 #include <ft2build.h>
5229 #include FT_FREETYPE_H
5230 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5231 #error "Need FreeType 2.0.9 or newer"
5232 #endif
5233 int main()
5235 FT_Library library;
5236 FT_Int major=-1,minor=-1,patch=-1;
5237 int err=FT_Init_FreeType(&library);
5238 if(err){
5239 printf("Couldn't initialize freetype2 lib, err code: %d\n",err);
5240 exit(err);
5242 FT_Library_Version(library,&major,&minor,&patch); // in v2.1.0+ only :(((
5243 printf("freetype2 header version: %d.%d.%d library version: %d.%d.%d\n",
5244 FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH,
5245 (int)major,(int)minor,(int)patch );
5246 if(major!=FREETYPE_MAJOR || minor!=FREETYPE_MINOR){
5247 printf("Library and header version mismatch! Fix it in your distribution!\n");
5248 exit(1);
5250 return 0;
5253 _freetype=no
5254 cc_check `$_freetypeconfig --cflags` `$_freetypeconfig --libs` && tmp_run && _freetype=yes
5255 else
5256 _freetype=no
5259 if test "$_freetype" = yes ; then
5260 _def_freetype='#define HAVE_FREETYPE'
5261 _inc_freetype=`$_freetypeconfig --cflags`
5262 _ld_freetype=`$_freetypeconfig --libs`
5263 else
5264 _def_freetype='#undef HAVE_FREETYPE'
5266 echores "$_freetype"
5268 if test "$_freetype" = no ; then
5269 _fontconfig=no
5270 _res_comment="freetype support needed"
5272 echocheck "fontconfig"
5273 if test "$_fontconfig" = auto ; then
5274 cat > $TMPC << EOF
5275 #include <stdio.h>
5276 #include <fontconfig/fontconfig.h>
5277 int main()
5279 int err = FcInit();
5280 if(err == FcFalse){
5281 printf("Couldn't initialize fontconfig lib\n");
5282 exit(err);
5284 return 0;
5288 _fontconfig=yes
5289 if cc_check -lfontconfig ; then
5290 _ld_fontconfig="-lfontconfig"
5291 elif cc_check `pkg-config --cflags --libs fontconfig` ; then
5292 _inc_fontconfig=`pkg-config --cflags fontconfig`
5293 _ld_fontconfig=`pkg-config --libs fontconfig`
5294 else
5295 _fontconfig=no
5298 if test "$_fontconfig" = yes ; then
5299 _def_fontconfig='#define HAVE_FONTCONFIG'
5300 else
5301 _def_fontconfig='#undef HAVE_FONTCONFIG'
5303 echores "$_fontconfig"
5305 echocheck "fribidi with charsets"
5306 if test "$_fribidi" = auto ; then
5307 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
5308 cat > $TMPC << EOF
5309 #include <stdio.h>
5310 /* workaround for fribidi 0.10.4 and below */
5311 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
5312 #include <fribidi/fribidi.h>
5313 int main()
5315 if(fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
5316 printf("Fribidi headers are not consistents with the library!\n");
5317 exit(1);
5319 return 0;
5322 _fribidi=no
5323 cc_check `$_fribidiconfig --cflags` `$_fribidiconfig --libs` && tmp_run && _fribidi=yes
5324 else
5325 _fribidi=no
5328 if test "$_fribidi" = yes ; then
5329 _def_fribidi='#define USE_FRIBIDI'
5330 _inc_fribidi=`$_fribidiconfig --cflags`
5331 _ld_fribidi=`$_fribidiconfig --libs`
5332 else
5333 _def_fribidi='#undef USE_FRIBIDI'
5335 echores "$_fribidi"
5338 echocheck "ENCA"
5339 if test "$_enca" = auto ; then
5340 cat > $TMPC << EOF
5341 #include <enca.h>
5342 int main()
5344 const char **langs;
5345 size_t langcnt;
5346 langs = enca_get_languages(&langcnt);
5347 return 0;
5350 _enca=no
5351 cc_check -lenca $_ld_lm && _enca=yes
5353 if test "$_enca" = yes ; then
5354 _def_enca='#define HAVE_ENCA 1'
5355 _ld_enca='-lenca'
5356 else
5357 _def_enca='#undef HAVE_ENCA'
5359 echores "$_enca"
5362 echocheck "zlib"
5363 cat > $TMPC << EOF
5364 #include <zlib.h>
5365 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
5367 _zlib=no
5368 cc_check -lz && _zlib=yes
5369 if test "$_zlib" = yes ; then
5370 _def_zlib='#define HAVE_ZLIB 1'
5371 _ld_zlib='-lz'
5372 else
5373 _def_zlib='#undef HAVE_ZLIB'
5375 echores "$_zlib"
5378 echocheck "RTC"
5379 if test "$_rtc" = auto ; then
5380 cat > $TMPC << EOF
5381 #include <sys/ioctl.h>
5382 #ifdef __linux__
5383 #include <linux/rtc.h>
5384 #else
5385 #include <rtc.h>
5386 #define RTC_PIE_ON RTCIO_PIE_ON
5387 #endif
5388 int main(void) { return RTC_PIE_ON; }
5390 _rtc=no
5391 cc_check && _rtc=yes
5393 if test "$_rtc" = yes ; then
5394 _def_rtc='#define HAVE_RTC 1'
5395 else
5396 _def_rtc='#undef HAVE_RTC'
5398 echores "$_rtc"
5401 echocheck "external liblzo support"
5402 if test "$_liblzo" = auto ; then
5403 _liblzo=no
5404 cat > $TMPC << EOF
5405 #include <lzo1x.h>
5406 int main(void) { lzo_init();return 0; }
5408 cc_check -llzo && _liblzo=yes
5410 if test "$_liblzo" = yes ; then
5411 _def_liblzo='#define USE_LIBLZO 1'
5412 _ld_liblzo='-llzo'
5413 _codecmodules="liblzo $_codecmodules"
5414 else
5415 _def_liblzo='#undef USE_LIBLZO'
5416 _nocodecmodules="liblzo $_nocodecmodules"
5418 echores "$_liblzo"
5421 echocheck "mad support"
5422 if test "$_mad" = auto ; then
5423 _mad=no
5424 cat > $TMPC << EOF
5425 #include <mad.h>
5426 int main(void) { return 0; }
5428 cc_check $_madlibdir -lmad && _mad=yes
5430 if test "$_mad" = yes ; then
5431 _def_mad='#define USE_LIBMAD 1'
5432 _ld_mad='-lmad'
5433 _codecmodules="libmad $_codecmodules"
5434 else
5435 _def_mad='#undef USE_LIBMAD'
5436 _nocodecmodules="libmad $_nocodecmodules"
5438 echores "$_mad"
5440 echocheck "Toolame"
5441 if test "$_toolame" = auto ; then
5442 cat > $TMPC <<EOF
5443 #include <toolame.h>
5444 int main(void) { toolame_init(); return 0; }
5446 _toolame=no
5447 _toolame_extraflags=""
5448 _toolame_lib="-ltoolame"
5449 if test -n "$_toolamedir"; then
5450 _toolame_extraflags="-I$_toolamedir -L$_toolamedir"
5452 cc_check $_toolame_extraflags $_toolame_lib $_ld_lm && _toolame=yes
5454 if test "$_toolame" = yes ; then
5455 _def_toolame='#define HAVE_TOOLAME 1'
5456 _codecmodules="$_codecmodules toolame"
5457 else
5458 _def_toolame='#undef HAVE_TOOLAME'
5459 _toolame_lib=""
5460 _nocodecmodules="toolame $_nocodecmodules"
5462 if test "$_toolamedir" ; then
5463 _res_comment="using $_toolamedir"
5465 echores "$_toolame"
5467 echocheck "Twolame"
5468 if test "$_twolame" = auto ; then
5469 cat > $TMPC <<EOF
5470 #include <twolame.h>
5471 int main(void) { twolame_init(); return 0; }
5473 _twolame=no
5474 _twolame_lib="-ltwolame"
5475 cc_check $_twolame_lib $_ld_lm && _twolame=yes
5477 if test "$_twolame" = yes ; then
5478 _def_twolame='#define HAVE_TWOLAME 1'
5479 _codecmodules="$_codecmodules twolame"
5480 else
5481 _def_twolame='#undef HAVE_TWOLAME'
5482 _twolame_lib=""
5483 _nocodecmodules="twolame $_nocodecmodules"
5485 echores "$_twolame"
5487 echocheck "OggVorbis support"
5488 if test "$_tremor_internal" = yes; then
5489 _vorbis=yes
5490 elif test "$_vorbis" = auto; then
5491 _vorbis=no
5492 cat > $TMPC << EOF
5493 #include <vorbis/codec.h>
5494 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
5496 cc_check -lvorbis -logg $_ld_lm && _vorbis=yes
5498 if test "$_vorbis" = yes ; then
5499 _def_vorbis='#define HAVE_OGGVORBIS 1'
5500 if test "$_tremor_internal" = yes ; then
5501 # do not set _ld_vorbis as it is resolved separately
5502 # mp3lame support for vorbis is deprecated so don't care
5503 _def_tremor='#define TREMOR 1'
5504 if test "$_tremor_low" = yes ; then
5505 _tremor_flags='-D_LOW_ACCURACY_'
5506 else
5507 _tremor_flags=''
5509 _codecmodules="tremor(internal) $_codecmodules"
5510 elif test "$_tremor" = yes ; then
5511 _def_tremor='#define TREMOR 1'
5512 _ld_vorbis='-lvorbisidec'
5513 _codecmodules="tremor $_codecmodules"
5514 else
5515 _def_tremor='#undef TREMOR'
5516 _ld_vorbis='-lvorbis -logg'
5517 _codecmodules="libvorbis $_codecmodules"
5519 else
5520 _def_vorbis='#undef HAVE_OGGVORBIS'
5521 _def_tremor='#undef TREMOR'
5522 _nocodecmodules="libvorbis $_nocodecmodules"
5524 if test "$_vorbis" = yes -a "$_tremor_internal" = yes -a "$_tremor_low" = yes ; then
5525 _res_comment="internal low accuracy Tremor"
5526 elif test "$_vorbis" = yes -a "$_tremor_internal" = yes ; then
5527 _res_comment="internal Tremor"
5528 elif test "$_vorbis" = yes -a "$_tremor" = yes ; then
5529 _res_comment="Tremor"
5531 echores "$_vorbis"
5533 echocheck "libspeex (version >= 1.1 required)"
5534 if test "$_speex" = auto ; then
5535 _speex=no
5536 cat > $TMPC << EOF
5537 #include <speex/speex.h>
5538 int main(void) {
5539 SpeexBits bits;
5540 void *dec;
5541 speex_decode_int(dec, &bits, dec);
5544 cc_check -lspeex $_ld_lm && _speex=yes
5546 if test "$_speex" = yes ; then
5547 _def_speex='#define HAVE_SPEEX 1'
5548 _ld_speex='-lspeex'
5549 _codecmodules="speex $_codecmodules"
5550 else
5551 _def_speex='#undef HAVE_SPEEX'
5552 _nocodecmodules="speex $_nocodecmodules"
5554 echores "$_speex"
5556 echocheck "OggTheora support"
5557 if test "$_theora" = auto ; then
5558 _theora=no
5559 cat > $TMPC << EOF
5560 #include <theora/theora.h>
5561 #include <string.h>
5562 int main(void)
5564 /* theora is in flux, make sure that all interface routines and
5565 * datatypes exist and work the way we expect it, so we don't break
5566 * mplayer */
5567 ogg_packet op;
5568 theora_comment tc;
5569 theora_info inf;
5570 theora_state st;
5571 yuv_buffer yuv;
5572 int r;
5573 double t;
5575 theora_info_init (&inf);
5576 theora_comment_init (&tc);
5578 return 0;
5580 /* we don't want to execute this kind of nonsense; just for making sure
5581 * that compilation works... */
5582 memset(&op, 0, sizeof(op));
5583 r = theora_decode_header (&inf, &tc, &op);
5584 r = theora_decode_init (&st, &inf);
5585 t = theora_granule_time (&st, op.granulepos);
5586 r = theora_decode_packetin (&st, &op);
5587 r = theora_decode_YUVout (&st, &yuv);
5588 theora_clear (&st);
5590 return 0;
5593 for _ld_theora in "`pkg-config --silence-errors --libs --cflags theora`" "-ltheora"; do
5594 cc_check $_ld_theora && _theora=yes && break
5595 done
5596 if test "$_theora" = no && test "$_tremor_internal" = yes; then
5597 for _ld_theora in "`pkg-config --silence-errors --libs --cflags theora`" "-ltheora"; do
5598 cc_check -I. tremor/bitwise.c $_ld_theora && _theora=yes && break
5599 done
5602 if test "$_theora" = yes ; then
5603 _def_theora='#define HAVE_OGGTHEORA 1'
5604 _codecmodules="libtheora $_codecmodules"
5605 # when --enable-theora is forced, we'd better provide a probably sane
5606 # $_ld_theora than nothing
5607 test -z "$_ld_theora" && _ld_theora="-ltheora -logg"
5608 else
5609 _def_theora='#undef HAVE_OGGTHEORA'
5610 _nocodecmodules="libtheora $_nocodecmodules"
5611 _ld_theora=""
5613 echores "$_theora"
5615 echocheck "mp3lib support"
5616 if test "$_mp3lib" = yes ; then
5617 _def_mp3lib='#define USE_MP3LIB 1'
5618 _codecmodules="mp3lib $_codecmodules"
5619 else
5620 _def_mp3lib='#undef USE_MP3LIB'
5621 _nocodecmodules="mp3lib $_nocodecmodules"
5623 echores "$_mp3lib"
5625 echocheck "liba52 support"
5626 if test "$_liba52" = yes ; then
5627 _def_liba52='#define USE_LIBA52 1'
5628 _codecmodules="liba52 $_codecmodules"
5629 else
5630 _def_liba52='#undef USE_LIBA52'
5631 _nocodecmodules="liba52 $_nocodecmodules"
5633 echores "$_liba52"
5635 echocheck "libdts support"
5636 if test "$_libdts" = auto ; then
5637 _libdts=no
5638 cat > $TMPC << EOF
5639 #include <inttypes.h>
5640 #include <dts.h>
5641 int main(void) { dts_init (0); return 0; }
5643 cc_check $_inc_libdts $_ld_libdts -ldts $_ld_lm && _libdts=yes
5645 if test "$_libdts" = yes ; then
5646 _def_libdts='#define CONFIG_DTS 1'
5647 _ld_libdts="$_ld_libdts -ldts"
5648 _codecmodules="libdts $_codecmodules"
5649 else
5650 _def_libdts='#undef CONFIG_DTS'
5651 _nocodecmodules="libdts $_nocodecmodules"
5653 echores "$_libdts"
5655 echocheck "libmpeg2 support"
5656 if test "$_libmpeg2" = yes ; then
5657 _def_libmpeg2='#define USE_LIBMPEG2 1'
5658 _codecmodules="libmpeg2 $_codecmodules"
5659 else
5660 _def_libmpeg2='#undef USE_LIBMPEG2'
5661 _nocodecmodules="libmpeg2 $_nocodecmodules"
5663 echores "$_libmpeg2"
5665 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
5666 if test "$_musepack" = auto ; then
5667 _musepack=no
5668 cat > $TMPC << EOF
5669 #include <mpcdec/mpcdec.h>
5670 int main(void) {
5671 mpc_streaminfo info;
5672 mpc_decoder decoder;
5673 mpc_decoder_set_streaminfo(&decoder, &info);
5674 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
5677 cc_check -lmpcdec $_ld_lm && _musepack=yes
5679 if test "$_musepack" = yes ; then
5680 _def_musepack='#define HAVE_MUSEPACK 1'
5681 _ld_musepack='-lmpcdec'
5682 _codecmodules="musepack $_codecmodules"
5683 else
5684 _def_musepack='#undef HAVE_MUSEPACK'
5685 _nocodecmodules="musepack $_nocodecmodules"
5687 echores "$_musepack"
5690 echocheck "Matroska support"
5691 if test "$_matroska_internal" = yes ; then
5692 _inputmodules="matroska $_inputmodules"
5693 _def_matroska='#define HAVE_MATROSKA 1'
5694 else
5695 _noinputmodules="matroska $_noinputmodules"
5696 _def_matroska='#undef HAVE_MATROSKA'
5698 echores "$_matroska_internal"
5700 echocheck "FAAC (AAC encoder) support"
5701 if test "$_faac" = auto ; then
5702 cat > $TMPC <<EOF
5703 #include <inttypes.h>
5704 #include <faac.h>
5705 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
5707 _faac=no
5708 for _ld_tmp in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
5709 cc_check -c -O4 $_ld_tmp $_ld_lm && _ld_faac="$_ld_tmp" && _faac=yes && break
5710 done
5712 if test "$_faac" = yes ; then
5713 _def_faac="#define HAVE_FAAC 1"
5714 _def_lavc_faac="#define CONFIG_FAAC 1"
5715 _codecmodules="faac $_codecmodules"
5716 else
5717 _def_faac="#undef HAVE_FAAC"
5718 _nocodecmodules="faac $_nocodecmodules"
5720 echores "$_faac"
5722 echocheck "internal FAAD2 (AAC) support"
5723 _inc_faad="-I`pwd`/libfaad2"
5724 if test "$_faad_internal" = auto ; then
5725 # the faad check needs a config.h file
5726 if not test -f "config.h" ; then
5727 cat > config.h << EOF
5728 /* C99 lrintf function available */
5729 $_def_lrintf
5732 # internal faad: check if our dear gcc is able to compile it...
5733 cp "`pwd`/libfaad2/cfft.c" $TMPC
5734 if ( cc_check -c -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer -D_GNU_SOURCE $_inc_faad ); then
5735 _faad_internal=yes
5736 else
5737 _faad_internal=no
5738 _res_comment="(broken gcc)"
5741 if test "$_faad_internal" = yes ; then
5742 _def_faad_internal="#define USE_INTERNAL_FAAD 1"
5743 _faad_external=no
5744 else
5745 _def_faad_internal="#undef USE_INTERNAL_FAAD"
5746 _inc_faad=
5748 echores "$_faad_internal"
5751 echocheck "external FAAD2 (AAC) support"
5752 if test "$_faad_external" != no ; then
5753 _ld_faad='-lfaad'
5754 _inc_faad="$_inc_extra"
5755 # external faad: check if it's really faad2 :)
5756 if test "$_faad_external" = auto ; then
5757 _faad_external=no
5758 cat > $TMPC << EOF
5759 #include <faad.h>
5760 #ifndef FAAD_MIN_STREAMSIZE
5761 #error Too old version
5762 #endif
5763 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo; testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
5765 cc_check $_inc_faad $_ld_faad $_ld_lm && _faad_external=yes
5768 echores "$_faad_external"
5770 if test "$_faad_external" = yes; then
5771 _def_faad='#define HAVE_FAAD 1'
5772 _codecmodules="faad2(external) $_codecmodules"
5773 elif test "$_faad_internal" = yes; then
5774 _def_faad='#define HAVE_FAAD 1'
5775 _codecmodules="faad2(internal) $_codecmodules"
5776 else
5777 _def_faad='#undef HAVE_FAAD'
5778 _nocodecmodules="faad2 $_nocodecmodules"
5779 _ld_faad=
5783 echocheck "LADSPA plugin support"
5784 if test "$_ladspa" = auto ; then
5785 cat > $TMPC <<EOF
5786 #include <stdio.h>
5787 #include <ladspa.h>
5788 int main(void) {
5789 const LADSPA_Descriptor *ld = NULL;
5790 return 0;
5793 _ladspa=no
5794 cc_check && _ladspa=yes
5796 if test "$_ladspa" = yes; then
5797 _def_ladspa="#define HAVE_LADSPA"
5798 _afsrc="$_afsrc af_ladspa.c"
5799 _afmodules="ladspa $_afmodules"
5800 else
5801 _def_ladspa="#undef HAVE_LADSPA"
5802 _noafmodules="ladspa $_noafmodules"
5804 echores "$_ladspa"
5807 if test "$_win32" = auto ; then
5808 if x86 ; then
5809 qnx && _win32=no
5810 else
5811 _win32=no # x86 arch only
5815 if test "$_win32" != no ; then
5816 if test -z "$_win32libdir" ; then
5817 for I in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
5818 if test -d "$I" ; then
5819 _win32libdir="$I"
5820 break;
5822 done
5826 echocheck "Win32 codec DLL support"
5827 if test "$_win32" = auto ; then
5828 _win32=no
5829 test -n "$_win32libdir" && _win32=yes
5831 if test "$_win32" = yes ; then
5832 _def_win32='#define USE_WIN32DLL 1'
5833 _res_comment="using $_win32libdir"
5834 else
5835 _def_win32='#undef USE_WIN32DLL'
5836 _nocodecmodules="win32 $_nocodecmodules"
5837 _dshow=no
5839 echores "$_win32"
5841 if test "$_win32" != no ; then
5842 _def_win32_loader='#undef WIN32_LOADER'
5843 echocheck "Win32 loader support"
5844 _ld_win32='loader/libloader.a'
5845 _dep_win32='loader/libloader.a'
5846 _codecmodules="win32 $_codecmodules"
5847 if openbsd ; then
5848 x86 && _ld_win32="$_ld_win32 -li386"
5850 if not win32 ; then
5851 _def_win32_loader='#define WIN32_LOADER 1'
5852 echores "yes"
5853 else
5854 _ld_win32libs="$_ld_win32libs -ladvapi32 -lole32"
5855 echores "no (using native windows)"
5859 echocheck "DirectShow"
5860 if false ; then
5862 if test "$_dshow" != no ; then
5863 _dshow=no
5864 # check if compiler supports C++ and C++-libs are installed correctly
5865 cat > "$TMPCPP" << EOF
5866 #include <string>
5867 class myclass {
5868 private: int ret;
5869 public: int myreturn(void);
5871 int myclass::myreturn(void) { ret = 0; return ret ; }
5872 int main(void) { myclass myobject; return myobject.myreturn(); }
5874 if cxx_check && tmp_run ; then
5875 _dshow=yes
5876 echores "yes (C++ is ok)"
5877 else
5878 echores "no"
5879 cat << EOF
5881 Your C++ runtime environment is broken.
5883 Hints: Does $_cc support C++? Do you have you a C++ compiler installed?
5884 Are the C++ libraries correctly installed?
5885 Check for libstdc++ and in (/etc/)ld.so.conf.
5887 If you do not need DirectShow support, you can also use:
5888 ./configure --disable-dshow <your-normal-configure-options>
5889 to disable building the C++ based DirectShow code.
5892 die "$_cc's C++ is broken"
5898 echores "$_dshow"
5900 if test "$_dshow" = yes ; then
5901 _def_dshow='#define USE_DIRECTSHOW 1'
5902 _ld_dshow='loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a'
5903 _dep_dshow='loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a'
5904 _codecmodules="dshow/dmo $_codecmodules"
5905 else
5906 _def_dshow='#undef USE_DIRECTSHOW'
5907 _nocodecmodules="dshow/dmo $_nocodecmodules"
5911 echocheck "XAnim DLL"
5912 if test "$_xanim" = auto ; then
5913 _xanim=no
5914 _res_comment="dynamic loader support needed"
5915 if test "$_dl" = yes ; then
5916 _res_comment="no suitable directory found - see DOCS/HTML/$_doc_lang/codecs.html"
5917 if test -z "$_xanimlibdir" ; then
5918 for I in "$_libdir/codecs" /usr/local/lib/xanim/mods /usr/lib/xanim/mods /usr/lib/xanim $XANIM_MOD_DIR ; do
5919 if test -d "$I" ; then
5920 _xanimlibdir="$I"
5921 break;
5923 done
5925 test "$_xanimlibdir" && _xanim=yes
5928 if test "$_xanim" = yes ; then
5929 _def_xanim='#define USE_XANIM 1'
5930 _def_xanim_path="#define XACODEC_PATH \"$_xanimlibdir\""
5931 _codecmodules="xanim $_codecmodules"
5932 _res_comment="using $_xanimlibdir"
5933 else
5934 _def_xanim='#undef USE_XANIM'
5935 _def_xanim_path='#undef XACODEC_PATH'
5936 _nocodecmodules="xanim $_nocodecmodules"
5938 echores "$_xanim"
5940 echocheck "RealPlayer DLL"
5941 if test "$_real" = auto ; then
5942 _real=no
5943 _res_comment="dynamic loader support needed"
5944 if test "$_dl" = yes || test "$_win32" = yes ; then
5945 # if test "$_dl" = yes ; then
5946 _res_comment="tested only on Linux/FreeBSD/NetBSD/Cygwin/MinGW/Darwin"
5947 if linux || freebsd || netbsd || win32 || darwin ; then
5948 _res_comment="no suitable directory found - see DOCS/HTML/$_doc_lang/codecs.html"
5949 if test -z "$_reallibdir" ; then
5950 for I in "$_libdir/codecs" "$_libdir/real" /usr/lib/real \
5951 /usr/lib/RealPlayer{9,8,}/Codecs /usr/local/RealPlayer{9,8,}/Codecs \
5952 /usr/local/lib/RealPlayer{9,8,}/Codecs /opt/RealPlayer{9,8,}/{Real/,}Codecs \
5953 {~,}/Applications/RealOne\ Player.app/Contents/MacOS/Library/Codecs \
5954 "$_win32libdir"; do
5955 if test -d "$I" ; then
5956 _reallibdir="$I"
5957 break
5959 done
5961 test "$_reallibdir" && _real=yes
5965 if test "$_real" = yes ; then
5966 _def_real='#define USE_REALCODECS 1'
5967 _def_real_path="#define REALCODEC_PATH \"$_reallibdir\""
5968 _codecmodules="real $_codecmodules"
5969 _res_comment="using $_reallibdir"
5970 else
5971 _def_real='#undef USE_REALCODECS'
5972 _def_real_path="#undef REALCODEC_PATH"
5973 _nocodecmodules="real $_nocodecmodules"
5975 echores "$_real"
5978 echocheck "LIVE555 Streaming Media libraries"
5979 if test "$_live" = auto && test "$_network" = yes ; then
5980 cat > $TMPCPP << EOF
5981 #include <liveMedia.hh>
5982 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1090195200)
5983 #error Please upgrade to version 2004.07.19 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
5984 #endif
5985 int main(void) {}
5988 _live=no
5989 for I in "$_livelibdir" "$_libdir/live" "/usr/lib/live" "/usr/local/live" "/usr/local/lib/live" ; do
5990 cxx_check -I$I/liveMedia/include -I$I/UsageEnvironment/include -I$I/groupsock/include && _livelibdir=$I && _live=yes && break
5991 done
5992 if test "$_live" != yes ; then
5993 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock; then
5994 _live_dist=yes
5998 if test "$_live" = yes && test "$_network" = yes ; then
5999 echores "yes (using $_livelibdir)"
6000 _def_live='#define STREAMING_LIVE555 1'
6001 _live_libs_def="# LIVE555 Streaming Media libraries:
6002 LIVE_LIB_DIR = $_livelibdir
6003 LIVE_LIBS = \$(LIVE_LIB_DIR)/liveMedia/libliveMedia.a
6004 LIVE_LIBS += \$(LIVE_LIB_DIR)/groupsock/libgroupsock.a
6005 LIVE_LIBS += \$(LIVE_LIB_DIR)/UsageEnvironment/libUsageEnvironment.a
6006 LIVE_LIBS += \$(LIVE_LIB_DIR)/BasicUsageEnvironment/libBasicUsageEnvironment.a
6007 LIVE_LIBS += -lstdc++
6008 LIVE_INCLUDES = -I\$(LIVE_LIB_DIR)/liveMedia/include
6009 LIVE_INCLUDES += -I\$(LIVE_LIB_DIR)/UsageEnvironment/include
6010 LIVE_INCLUDES += -I\$(LIVE_LIB_DIR)/BasicUsageEnvironment/include
6011 LIVE_INCLUDES += -I\$(LIVE_LIB_DIR)/groupsock/include"
6012 _ld_live='$(LIVE_LIBS)'
6013 _inputmodules="live555 $_inputmodules"
6014 elif test "$_live_dist" = yes && test "$_network" = yes ; then
6015 echores "yes (using distribution version)"
6016 _live="yes"
6017 _def_live='#define STREAMING_LIVE555 1'
6018 _live_libs_def="# LIVE555 Streaming Media libraries:
6019 LIVE_LIB_DIR = $_livelibdir
6020 LIVE_LIBS = -lliveMedia
6021 LIVE_LIBS += -lgroupsock
6022 LIVE_LIBS += -lUsageEnvironment
6023 LIVE_LIBS += -lBasicUsageEnvironment
6024 LIVE_LIBS += -lstdc++
6025 LIVE_INCLUDES = -I/usr/include/liveMedia
6026 LIVE_INCLUDES += -I/usr/include/UsageEnvironment
6027 LIVE_INCLUDES += -I/usr/include/BasicUsageEnvironment
6028 LIVE_INCLUDES += -I/usr/include/groupsock"
6029 _ld_live='$(LIVE_LIBS)'
6030 _inputmodules="live555 $_inputmodules"
6031 else
6032 echores "no"
6033 _def_live='#undef STREAMING_LIVE555'
6034 _noinputmodules="live555 $_noinputmodules"
6037 echocheck "FFmpeg libavutil (static)"
6038 if test -d libavutil ; then
6039 _libavutil=yes
6040 else
6041 _libavutil=no
6043 echores "$_libavutil"
6045 echocheck "FFmpeg libavcodec (static)"
6046 if test "$_libavcodec" = auto ; then
6047 # Note: static linking is preferred to dynamic linking
6048 _libavcodec=no
6049 _res_comment="see DOCS/HTML/$_doc_lang/codecs.html"
6050 if test -d libavcodec && test -f libavcodec/utils.c ; then
6051 _res_comment="old ffmpeg version, use CVS !"
6052 if grep avcodec_find_encoder_by_name libavcodec/utils.c > /dev/null 2>&1 ; then
6053 # check if libavutil is a required
6054 cat > $TMPC << EOF
6055 #include "libavcodec/avcodec.h"
6056 #if LIBAVCODEC_BUILD >= 3211265
6057 #error We need libavutil!
6058 #endif
6059 int main(void) { return 0; }
6062 if cc_check -I. -I./libavutil; then
6063 _libavutil_required="no"
6064 else
6065 _libavutil_required="yes"
6067 _res_comment="libavutil availability does not fit libavcodec version"
6068 if test "$_libavutil_required" = "$_libavutil"; then
6069 _libavcodec="yes"
6070 _res_comment=""
6075 echores "$_libavcodec"
6077 echocheck "FFmpeg libavformat (static)"
6078 if test "$_libavformat" = auto ; then
6079 # Note: static linking is preferred to dynamic linking
6080 _libavformat=no
6081 if test -d libavformat && test -f libavformat/utils.c ; then
6082 _libavformat=yes
6085 echores "$_libavformat"
6087 echocheck "FFmpeg libpostproc (static)"
6088 if test "$_libpostproc" = auto ; then
6089 _libpostproc=no
6090 if test -d libavcodec && test -f libavcodec/libpostproc/postprocess.h ; then
6091 _libpostproc='yes'
6094 echores "$_libpostproc"
6097 if test "$_libavcodec" != yes ; then
6098 echocheck "FFmpeg libavcodec (dynamic)"
6099 if test "$_libavcodec_so" = auto ; then
6100 _libavcodec_so=no
6101 _res_comment="libavcodec.so is broken/obsolete"
6102 # FIXME : check for avcodec_find_encoder_by_name() for mencoder
6103 cat > $TMPC << EOF
6104 #include <ffmpeg/avcodec.h>
6105 int main(void) {
6106 avcodec_find_encoder_by_name("");
6107 return 0;
6110 if (pkg-config --exists libavcodec >> "$TMPLOG" 2>&1) ; then
6111 _inc_libavcodec=`pkg-config --cflags libavcodec`
6112 _ld_libavcodec=`pkg-config --libs libavcodec`
6113 cc_check $_inc_libavcodec $_ld_libavcodec && _libavcodec_so=yes
6114 elif cc_check -lavcodec $_ld_lm ; then
6115 _libavcodec_so=yes
6117 if test "$_libavcodec_so" == yes ; then
6118 _res_comment="using libavcodec.so, but static libavcodec is recommended"
6121 echores "$_libavcodec_so"
6124 if test "$_libavformat" != yes ; then
6125 echocheck "FFmpeg libavformat (dynamic)"
6126 if test "$_libavformat_so" = auto ; then
6127 _libavformat_so=no
6128 cat > $TMPC <<EOF
6129 #include <ffmpeg/avformat.h>
6130 int main(void) { av_alloc_format_context(); return 0; }
6132 if (pkg-config --exists libavformat >> "$TMPLOG" 2>&1 ) ; then
6133 _inc_libavformat=`pkg-config --cflags libavformat`
6134 _ld_libavformat=`pkg-config --libs libavformat`
6135 cc_check $_inc_libavformat $_ld_libavformat && _libavformat_so=yes
6136 elif cc_check $_ld_lm -lavformat ; then
6137 _libavformat_so=yes
6139 if test "$_libavformat_so" == yes ; then
6140 _res_comment="using libavformat.so, but static libavformat is recommended"
6143 echores "$_libavformat_so"
6146 if test "$_libpostproc" != yes ; then
6147 echocheck "FFmpeg libpostproc (dynamic)"
6148 if test "$_libpostproc_so" = auto ; then
6149 _libpostproc_so=no
6150 cat > $TMPC << EOF
6151 #define USE_LIBPOSTPROC 1
6152 #include <inttypes.h>
6153 #include <postproc/postprocess.h>
6154 int main(void) {
6155 pp_get_mode_by_name_and_quality("de", 0);
6156 return 0;}
6158 if cc_check -lpostproc $_ld_lm ; then
6159 _libpostproc_so=yes
6160 _res_comment="using libpostproc.so, but static libpostproc is recommended"
6163 echores "$_libpostproc_so"
6166 _def_libavcodec='#undef USE_LIBAVCODEC'
6167 _def_libavcodec_so='#undef USE_LIBAVCODEC_SO'
6168 if test "$_libavcodec" = yes ; then
6169 _def_libavcodec='#define USE_LIBAVCODEC 1'
6170 _ld_libavcodec='libavcodec/libavcodec.a'
6171 _dep_libavcodec='libavcodec/libavcodec.a'
6172 _codecmodules="libavcodec $_codecmodules"
6173 if test "$_libavutil" = yes; then
6174 _ld_libavutil='libavutil/libavutil.a'
6175 _dep_libavutil='libavutil/libavutil.a'
6177 elif test "$_libavcodec_so" = yes ; then
6178 _def_libavcodec='#define USE_LIBAVCODEC 1'
6179 _def_libavcodec_so='#define USE_LIBAVCODEC_SO 1'
6180 test "$_ld_libavcodec" || _ld_libavcodec='-lavcodec'
6181 _codecmodules="libavcodec.so $_codecmodules"
6182 else
6183 _nocodecmodules="libavcodec $_nocodecmodules"
6186 _def_libavformat='#undef USE_LIBAVFORMAT'
6187 _def_libavformat_so='#undef USE_LIBAVFORMAT_SO'
6188 _def_libavformat_win32='#undef CONFIG_WIN32'
6189 if test "$_libavformat" = yes ; then
6190 _def_libavformat='#define USE_LIBAVFORMAT 1'
6191 _ld_libavformat='libavformat/libavformat.a'
6192 _dep_libavformat='libavformat/libavformat.a'
6193 if win32 ; then
6194 _def_libavformat_win32='#define CONFIG_WIN32 1'
6196 else
6197 if test "$_libavformat_so" = yes ; then
6198 _def_libavformat_so='#define USE_LIBAVFORMAT_SO 1'
6199 test "$_ld_libavformat" || _ld_libavformat='-lavformat'
6200 if win32 ; then
6201 _def_libavformat_win32='#define CONFIG_WIN32 1'
6206 _def_libpostproc='#undef USE_LIBPOSTPROC'
6207 _def_libpostproc_so='#undef USE_LIBPOSTPROC_SO'
6208 if test "$_libpostproc" = yes ; then
6209 _def_libpostproc='#define USE_LIBPOSTPROC 1'
6210 _ld_libpostproc='libavcodec/libpostproc/libpostproc.a'
6211 _dep_libpostproc='libavcodec/libpostproc/libpostproc.a'
6212 else
6213 if test "$_libpostproc_so" = yes ; then
6214 _def_libpostproc_so='#define USE_LIBPOSTPROC_SO 1'
6215 _ld_libpostproc='-lpostproc'
6219 echocheck "amr narrowband"
6220 if test "$_amr_nb" = auto ; then
6221 _amr_nb=no
6222 if test -f libavcodec/amr_float/sp_dec.c ; then
6223 if test "$_libavcodec" = yes ; then
6224 _amr_nb=yes
6225 else
6226 _res_comment="libavcodec (static) is required by amr_nb, sorry"
6230 if test "$_amr_nb" = yes ; then
6231 _def_amr_nb='#define AMR_NB 1'
6232 else
6233 _def_amr_nb='#undef AMR_NB'
6235 echores "$_amr_nb $_echomsg"
6237 echocheck "amr narrowband, fixed point"
6238 if test "$_amr_nb_fixed" = auto ; then
6239 _amr_nb_fixed=no
6240 if test -f libavcodec/amr/dtx_dec.c ; then
6241 if test "$_libavcodec" = yes ; then
6242 if test "$_amr_nb" = no ; then
6243 _amr_nb_fixed=yes
6244 else
6245 _res_comment="disabled by amr_nb"
6247 else
6248 _res_comment="libavcodec (static) is required by amr_nb-fixed, sorry"
6252 if test "$_amr_nb_fixed" = yes ; then
6253 _def_amr_nb='#define AMR_NB 1'
6254 _def_amr_nb_fixed='#define AMR_NB_FIXED 1'
6255 _amr_nb=yes;
6256 else
6257 _def_amr_nb_fixed='#undef AMR_NB_FIXED'
6259 echores "$_amr_nb_fixed"
6261 if test "$_amr_nb" = yes ; then
6262 _codecmodules="amr_nb $_codecmodules"
6263 else
6264 _nocodecmodules="amr_nb $_nocodecmodules"
6267 echocheck "amr wideband"
6268 if test "$_amr_wb" = auto ; then
6269 _amr_wb=no
6270 if test -f libavcodec/amrwb_float/dec_dtx.c ; then
6271 if test "$_libavcodec" = yes ; then
6272 _amr_wb=yes
6273 else
6274 _res_comment="libavcodec (static) is required by amr_wb, sorry"
6278 if test "$_amr_wb" = yes ; then
6279 _def_amr_wb='#define AMR_WB 1'
6280 _codecmodules="amr_wb $_codecmodules"
6281 else
6282 _def_amr_wb='#undef AMR_WB'
6283 _nocodecmodules="amr_wb $_nocodecmodules"
6285 echores "$_amr_wb"
6287 echocheck "libdv-0.9.5+"
6288 if test "$_libdv" = auto ; then
6289 _libdv=no
6290 cat > $TMPC <<EOF
6291 #include <libdv/dv.h>
6292 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
6294 cc_check -ldv $_ld_lm && _libdv=yes
6296 if test "$_libdv" = yes ; then
6297 _def_libdv='#define HAVE_LIBDV095 1'
6298 _ld_libdv="-ldv"
6299 _codecmodules="libdv $_codecmodules"
6300 else
6301 _def_libdv='#undef HAVE_LIBDV095'
6302 _nocodecmodules="libdv $_nocodecmodules"
6304 echores "$_libdv"
6306 echocheck "zr"
6307 if test "$_zr" = auto ; then
6308 #36067's seem to identify themselves as 36057PQC's, so the line
6309 #below should work for 36067's and 36057's.
6310 if grep -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci > /dev/null 2>&1; then
6311 _zr=yes
6312 else
6313 _zr=no
6316 if test "$_zr" = yes ; then
6317 if test "$_libavcodec" = yes ; then
6318 _def_zr='#define HAVE_ZR 1'
6319 _vosrc="$_vosrc vo_zr2.c vo_zr.c jpeg_enc.c"
6320 _vomodules="zr zr2 $_vomodules"
6321 else
6322 _res_comment="libavcodec (static) is required by zr, sorry"
6323 _novomodules="zr $_novomodules"
6324 _def_zr='#undef HAVE_ZR'
6326 else
6327 _def_zr='#undef HAVE_ZR'
6328 _novomodules="zr zr2 $_novomodules"
6330 echores "$_zr"
6332 echocheck "bl"
6333 if test "$_bl" = yes ; then
6334 _def_bl='#define HAVE_BL 1'
6335 _vosrc="$_vosrc vo_bl.c"
6336 _vomodules="bl $_vomodules"
6337 else
6338 _def_bl='#undef HAVE_BL'
6339 _novomodules="bl $_novomodules"
6341 echores "$_bl"
6343 echocheck "XviD"
6344 cat > $TMPC << EOF
6345 #include <xvid.h>
6346 int main(void) { xvid_init(0, 0, 0, 0); return 0; }
6348 _ld_xvid="$_ld_xvid -lxvidcore"
6349 if test "$_xvid" != no && cc_check $_inc_xvid $_ld_xvid $_ld_lm ; then
6350 _xvid=yes
6351 _def_xvid3='#define HAVE_XVID3 1'
6352 _def_xvid4='#undef HAVE_XVID4'
6353 _codecmodules="xvid $_codecmodules"
6354 else
6355 cat > $TMPC << EOF
6356 #include <xvid.h>
6357 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
6359 if test "$_xvid" != no && cc_check $_inc_xvid $_ld_xvid $_ld_lm ; then
6360 _xvid=yes
6361 _def_xvid3='#undef HAVE_XVID3'
6362 _def_xvid4='#define HAVE_XVID4 1'
6363 _codecmodules="xvid $_codecmodules"
6364 else
6365 _xvid=no
6366 _ld_xvid=''
6367 _def_xvid3='#undef HAVE_XVID3'
6368 _def_xvid4='#undef HAVE_XVID4'
6369 _nocodecmodules="xvid $_nocodecmodules"
6372 echores "$_xvid"
6374 _xvidcompat=no
6375 _def_decore_xvid='#undef DECORE_XVID'
6376 _def_encore_xvid='#undef ENCORE_XVID'
6377 if test "$_xvid" = yes ; then
6378 echocheck "DivX4 compatibility in XviD"
6379 cat > $TMPC << EOF
6380 #include <divx4.h>
6381 int main(void) { (void) decore(0, 0, 0, 0); return 0; }
6383 cc_check $_ld_lm "$_ld_xvid" && _xvidcompat=yes
6384 echores "$_xvidcompat"
6387 echocheck "x264"
6388 cat > $TMPC << EOF
6389 #include <inttypes.h>
6390 #include <x264.h>
6391 #if X264_BUILD < 45
6392 #error We do not support old versions of x264. Get the latest from SVN.
6393 #endif
6394 int main(void) { x264_encoder_open((void*)0); return 0; }
6396 _ld_x264="$_ld_x264 -lx264 $_ld_pthread"
6397 if test "$_x264" != no && \
6398 ( cc_check $_inc_x264 $_ld_x264 $_ld_lm || \
6399 ( test "$_x11" = yes && cc_check $_inc_x264 $_inc_x11 $_ld_x264 $_ld_x11 $_ld_lm )) ; \
6400 then
6401 _x264=yes
6402 _def_x264='#define HAVE_X264 1'
6403 _codecmodules="x264 $_codecmodules"
6404 else
6405 _x264=no
6406 _ld_x264=''
6407 _def_x264='#undef HAVE_X264'
6408 _nocodecmodules="x264 $_nocodecmodules"
6410 echores "$_x264"
6412 echocheck "DivX4linux/DivX5linux/OpenDivX decore"
6413 # DivX5: DEC_OPT_MEMORY_REQS - DivX4: DEC_OPT_FRAME_311
6414 cat > $TMPC << EOF
6415 #include <decore.h>
6416 int main(void) { (void) decore(0, 0, 0, 0); return DEC_OPT_FRAME_311; }
6418 if test "$_divx4linux" != no && cc_check $_ld_lm -ldivxdecore ; then
6419 _opendivx=no
6420 _ld_decore='-ldivxdecore'
6421 _def_decore='#define NEW_DECORE 1'
6422 _def_divx='#define USE_DIVX'
6423 _def_divx5='#undef DECORE_DIVX5'
6424 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
6425 _codecmodules="divx4linux $_codecmodules"
6426 echores "DivX4linux (with libdivxdecore.so)"
6427 else
6428 # if test "$_divx4linux" != no ; then
6429 # DivX5 check
6430 # OdivxPP disabled because of:
6431 # ld: Warning: type of symbol `dering' changed from 1 to 2 in opendivx/postprocess.o
6432 cat > $TMPC << EOF
6433 #include <decore.h>
6434 int main(void) { (void) decore(0, 0, 0, 0); return DEC_OPT_INIT; }
6436 if test "$_divx4linux" != no && cc_check $_ld_lm -ldivxdecore ; then
6437 _opendivx=no
6438 # _ld_decore='-ldivxdecore opendivx/postprocess.o'
6439 _ld_decore='-ldivxdecore'
6440 _def_decore='#define NEW_DECORE 1'
6441 _def_divx='#define USE_DIVX'
6442 _def_divx5='#define DECORE_DIVX5 1'
6443 # _def_odivx_postprocess='#define HAVE_ODIVX_POSTPROCESS 1'
6444 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
6445 _codecmodules="divx5linux $_codecmodules"
6446 _nocodecmodules="divx4linux $_nocodecmodules"
6447 echores "DivX5linux (with libdivxdecore.so)"
6448 elif test "$_opendivx" != no ; then
6449 _opendivx=yes
6450 _ld_decore='opendivx/libdecore.a'
6451 _def_decore='#undef NEW_DECORE'
6452 _def_divx='#define USE_DIVX'
6453 _def_divx5='#undef DECORE_DIVX5'
6454 _def_odivx_postprocess='#define HAVE_ODIVX_POSTPROCESS 1'
6455 _codecmodules="opendivx $_codecmodules"
6456 _nocodecmodules="divx5linux $_nocodecmodules"
6457 echores "OpenDivX"
6458 elif test "$_xvidcompat" = yes ; then
6459 _opendivx=no
6460 _ld_decore=''
6461 _def_decore='#define NEW_DECORE 1'
6462 _def_divx='#define USE_DIVX 1'
6463 _def_divx5='#undef DECORE_DIVX5'
6464 _def_decore_xvid='#define DECORE_XVID 1'
6465 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
6466 _nocodecmodules="opendivx divx5linux divx4linux $_nocodecmodules"
6467 echores "XviD compat."
6468 else
6469 _opendivx=no
6470 _ld_decore=''
6471 _def_decore='#undef NEW_DECORE'
6472 _def_divx='#undef USE_DIVX'
6473 _def_divx5='#undef DECORE_DIVX5'
6474 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
6475 _nocodecmodules="opendivx $_nocodecmodules"
6476 echores "no"
6477 fi # DivX5 check
6481 # mencoder requires (optional) those libs: libmp3lame and divx4linux encore
6482 if test "$_mencoder" != no ; then
6484 echocheck "libmp3lame (for mencoder)"
6485 _mp3lame=no
6486 _def_mp3lame_preset='#undef HAVE_MP3LAME_PRESET'
6487 _def_mp3lame_preset_medium='#undef HAVE_MP3LAME_PRESET_MEDIUM'
6488 cat > $TMPC <<EOF
6489 #include <lame/lame.h>
6490 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; }
6492 # Note: libmp3lame usually depends on vorbis
6493 cc_check -lmp3lame $_ld_vorbis $_ld_lm && tmp_run && _mp3lame=yes
6494 if test "$_mp3lame" = yes ; then
6495 _def_mp3lame="#define HAVE_MP3LAME"
6496 _ld_mp3lame="-lmp3lame $_ld_vorbis"
6497 cat > $TMPC << EOF
6498 #include <lame/lame.h>
6499 int main(void) { int p = STANDARD_FAST; return 0; }
6501 cc_check $_ld_mp3lame $_ld_lm && _def_mp3lame_preset="#define HAVE_MP3LAME_PRESET"
6502 cat > $TMPC << EOF
6503 #include <lame/lame.h>
6504 int main(void) { int p = MEDIUM_FAST; return 0; }
6506 cc_check $_ld_mp3lame $_ld_lm && _def_mp3lame_preset_medium="#define HAVE_MP3LAME_PRESET_MEDIUM"
6507 else
6508 _def_mp3lame='#undef HAVE_MP3LAME'
6510 echores "$_mp3lame"
6513 echocheck "DivX4linux encore (for mencoder)"
6514 cat > $TMPC << EOF
6515 #include <encore2.h>
6516 int main(void) { (void) encore(0, 0, 0, 0); return 0; }
6518 if test "$_divx4linux" != no && cc_check -ldivxencore $_ld_lm ; then
6519 _def_encore='#define HAVE_DIVX4ENCORE 1'
6520 _ld_encore='-ldivxencore'
6521 echores "DivX4linux (with libdivxencore.so)"
6522 elif test "$_xvidcompat" = yes ; then
6523 _def_encore='#define HAVE_DIVX4ENCORE 1'
6524 _ld_encore=''
6525 _def_encore_xvid='#define ENCORE_XVID 1'
6526 echores "XviD compat."
6527 else
6528 _def_encore='#undef HAVE_DIVX4ENCORE'
6529 echores "no"
6534 echocheck "mencoder"
6535 _mencoder_flag='#undef HAVE_MENCODER'
6536 if test "$_mencoder" = yes ; then
6537 _mencoder_flag='#define HAVE_MENCODER'
6539 echores "$_mencoder"
6541 echocheck "fastmemcpy"
6542 # fastmemcpy check is done earlier with tests of CPU & binutils features
6543 if test "$_fastmemcpy" = yes ; then
6544 _def_fastmemcpy='#define USE_FASTMEMCPY 1'
6545 else
6546 _def_fastmemcpy='#undef USE_FASTMEMCPY'
6548 echores "$_fastmemcpy"
6550 echocheck "UniquE RAR File Library"
6551 if test "$_unrarlib" = yes ; then
6552 _def_unrarlib='#define USE_UNRARLIB 1'
6553 else
6554 _def_unrarlib='#undef USE_UNRARLIB'
6556 echores "$_unrarlib"
6558 echocheck "TV interface"
6559 if test "$_tv" = yes ; then
6560 _def_tv='#define USE_TV 1'
6561 _inputmodules="tv $_inputmodules"
6562 else
6563 _noinputmodules="tv $_noinputmodules"
6564 _def_tv='#undef USE_TV'
6566 echores "$_tv"
6568 echocheck "EDL support"
6569 if test "$_edl" = yes ; then
6570 _def_edl='#define USE_EDL'
6571 _inputmodules="edl $_inputmodules"
6572 else
6573 _noinputmodules="edl $_noinputmodules"
6574 _def_edl='#undef USE_EDL'
6576 echores "$_edl"
6578 echocheck "*BSD BrookTree 848 TV interface"
6579 if test "$_tv_bsdbt848" = auto ; then
6580 _tv_bsdbt848=no
6581 if test "$_tv" = yes ; then
6582 cat > $TMPC <<EOF
6583 #include <sys/types.h>
6584 #if defined(__NetBSD__)
6585 #include <dev/ic/bt8xx.h>
6586 #else
6587 #include <machine/ioctl_bt848.h>
6588 #endif
6589 int main(void) { return 0; }
6591 cc_check && _tv_bsdbt848=yes
6594 if test "$_tv_bsdbt848" = yes ; then
6595 _def_tv_bsdbt848='#define HAVE_TV_BSDBT848 1'
6596 _inputmodules="tv-bsdbt848 $_inputmodules"
6597 else
6598 _def_tv_bsdbt848='#undef HAVE_TV_BSDBT848'
6599 _noinputmodules="tv-bsdbt848 $_noinputmodules"
6601 echores "$_tv_bsdbt848"
6603 echocheck "Video 4 Linux TV interface"
6604 if test "$_tv_v4l" = auto ; then
6605 _tv_v4l=no
6606 if test "$_tv" = yes && linux ; then
6607 cat > $TMPC <<EOF
6608 #include <stdlib.h>
6609 #include <linux/videodev.h>
6610 int main(void) { return 0; }
6612 cc_check && _tv_v4l=yes
6615 if test "$_tv_v4l" = yes ; then
6616 _def_tv_v4l='#define HAVE_TV_V4L 1'
6617 _inputmodules="tv-v4l $_inputmodules"
6618 else
6619 _noinputmodules="tv-v4l $_noinputmodules"
6620 _def_tv_v4l='#undef HAVE_TV_V4L'
6622 echores "$_tv_v4l"
6625 echocheck "Video 4 Linux 2 TV interface"
6626 if test "$_tv_v4l2" = auto ; then
6627 _tv_v4l2=no
6628 if test "$_tv" = yes && linux ; then
6629 cat > $TMPC <<EOF
6630 #include <stdlib.h>
6631 #include <linux/types.h>
6632 #include <linux/videodev2.h>
6633 int main(void) { return 0; }
6635 cc_check && _tv_v4l2=yes
6638 if test "$_tv_v4l2" = yes ; then
6639 _def_tv_v4l2='#define HAVE_TV_V4L2 1'
6640 _inputmodules="tv-v4l2 $_inputmodules"
6641 else
6642 _noinputmodules="tv-v4l2 $_noinputmodules"
6643 _def_tv_v4l2='#undef HAVE_TV_V4L2'
6645 echores "$_tv_v4l2"
6648 echocheck "audio select()"
6649 if test "$_select" = no ; then
6650 _def_select='#undef HAVE_AUDIO_SELECT'
6651 elif test "$_select" = yes ; then
6652 _def_select='#define HAVE_AUDIO_SELECT 1'
6654 echores "$_select"
6657 echocheck "network"
6658 # FIXME network check
6659 if test "$_network" != no ; then
6660 _def_network='#define MPLAYER_NETWORK 1'
6661 _ld_network="$_ld_sock"
6662 _inputmodules="network $_inputmodules"
6663 else
6664 _noinputmodules="network $_noinputmodules"
6665 _def_network='#undef MPLAYER_NETWORK'
6666 _ftp=no
6668 echores "$_network"
6670 echocheck "ftp"
6671 if not beos && test "$_ftp" != no ; then
6672 _def_ftp='#define HAVE_FTP 1'
6673 _inputmodules="ftp $_inputmodules"
6674 else
6675 _noinputmodules="ftp $_noinputmodules"
6676 _def_ftp='#undef HAVE_FTP'
6678 echores "$_ftp"
6680 echocheck "vstream client"
6681 if test "$_vstream" = auto ; then
6682 _vstream=no
6683 cat > $TMPC <<EOF
6684 #include <vstream-client.h>
6685 void vstream_error(const char *format, ... ) {}
6686 int main(void) { vstream_start(); return 0; }
6688 cc_check -lvstream-client && _vstream=yes
6690 if test "$_vstream" = yes ; then
6691 _def_vstream='#define HAVE_VSTREAM 1'
6692 _inputmodules="vstream $_inputmodules"
6693 _ld_vstream='-lvstream-client'
6694 else
6695 _noinputmodules="vstream $_noinputmodules"
6696 _def_vstream='#undef HAVE_VSTREAM'
6698 echores "$_vstream"
6700 # endian testing
6701 echocheck "byte order"
6702 if test "$_big_endian" = auto ; then
6703 cat > $TMPC <<EOF
6704 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
6705 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
6706 int main(){
6707 char* s = (char*)ascii_name;
6708 return 0;
6711 if cc_check ; then
6712 if strings $TMPO | grep -l MPlayerBigEndian >/dev/null ; then
6713 _big_endian=yes
6714 else
6715 _big_endian=no
6717 else
6718 echo -n "failed to autodetect byte order, defaulting to "
6721 if test "$_big_endian" = yes ; then
6722 _byte_order='big-endian'
6723 _def_words_endian='#define WORDS_BIGENDIAN 1'
6724 else
6725 _byte_order='little-endian'
6726 _def_words_endian='#undef WORDS_BIGENDIAN'
6728 echores "$_byte_order"
6730 echocheck "OSD menu"
6731 if test "$_menu" = yes ; then
6732 _def_menu='#define HAVE_MENU 1'
6733 else
6734 _def_menu='#undef HAVE_MENU'
6736 echores "$_menu"
6738 # Check to see if they want QTX codecs enabled
6739 echocheck "QTX codecs"
6740 if test "$_qtx" = auto ; then
6741 _qtx=$_win32
6743 if test "$_qtx" = yes ; then
6744 _def_qtx='#define USE_QTX_CODECS 1'
6745 _codecmodules="qtx $_codecmodules"
6746 else
6747 _def_qtx='#undef USE_QTX_CODECS'
6748 _nocodecmodules="qtx $_nocodecmodules"
6750 echores "$_qtx"
6753 echocheck "Subtitles sorting"
6754 if test "$_sortsub" = yes ; then
6755 _def_sortsub='#define USE_SORTSUB 1'
6756 else
6757 _def_sortsub='#undef USE_SORTSUB'
6759 echores "$_sortsub"
6762 echocheck "XMMS inputplugin support"
6763 if test "$_xmms" = yes ; then
6765 if ( xmms-config --version ) >/dev/null 2>&1 ; then
6766 if test -z "$_xmmsplugindir" ; then
6767 _xmmsplugindir=`xmms-config --input-plugin-dir`
6769 if test -z "$_xmmslibdir" ; then
6770 _xmmslibdir=`xmms-config --exec-prefix`/lib
6772 else
6773 if test -z "$_xmmsplugindir" ; then
6774 _xmmsplugindir=/usr/lib/xmms/Input
6776 if test -z "$_xmmslibdir" ; then
6777 _xmmslibdir=/usr/lib
6781 _def_xmms='#define HAVE_XMMS 1'
6782 if darwin ; then
6783 _xmms_lib="${_xmmslibdir}/libxmms.dylib"
6784 else
6785 _xmms_lib="${_xmmslibdir}/libxmms.so.1 -export-dynamic"
6787 else
6788 _def_xmms='#undef HAVE_XMMS'
6790 echores "$_xmms"
6792 echocheck "inet6"
6793 if test "$_inet6" = auto ; then
6794 cat > $TMPC << EOF
6795 #include <sys/types.h>
6796 #include <sys/socket.h>
6797 int main(void) { socket(AF_INET6, SOCK_STREAM, AF_INET6); }
6799 _inet6=no
6800 if cc_check ; then
6801 _inet6=yes
6804 if test "$_inet6" = yes ; then
6805 _def_inet6='#define HAVE_AF_INET6 1'
6806 else
6807 _def_inet6='#undef HAVE_AF_INET6'
6809 echores "$_inet6"
6812 echocheck "gethostbyname2"
6813 if test "$_gethostbyname2" = auto ; then
6814 cat > $TMPC << EOF
6815 #include <sys/types.h>
6816 #include <sys/socket.h>
6817 #include <netdb.h>
6818 int main(void) { gethostbyname2("", AF_INET); }
6820 _gethostbyname2=no
6821 if cc_check ; then
6822 _gethostbyname2=yes
6826 if test "$_gethostbyname2" = yes ; then
6827 _def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
6828 else
6829 _def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
6831 echores "$_gethostbyname2"
6833 # --------------- GUI specific tests begin -------------------
6834 echocheck "GUI"
6835 echo "$_gui"
6836 if test "$_gui" = yes ; then
6838 # Required libraries
6839 test "$_png" != yes && die "PNG support required for GUI compilation, please install libpng and libpng-dev packages."
6840 test "$_x11" != yes && die "X11 support required for GUI compilation"
6842 echocheck "XShape extension"
6843 _xshape=no
6844 if test "$_x11" = yes ; then
6845 cat > $TMPC << EOF
6846 #include <X11/Xlib.h>
6847 #include <X11/Xproto.h>
6848 #include <X11/Xutil.h>
6849 #include <X11/extensions/shape.h>
6850 #include <stdlib.h>
6851 int main(void) {
6852 char *name = ":0.0";
6853 Display *wsDisplay;
6854 int exitvar = 0;
6855 int eventbase, errorbase;
6856 if (getenv("DISPLAY"))
6857 name=getenv("DISPLAY");
6858 wsDisplay=XOpenDisplay(name);
6859 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
6860 exitvar=1;
6861 XCloseDisplay(wsDisplay);
6862 return exitvar;
6865 cc_check $_inc_x11 $_ld_x11 && _xshape=yes
6867 if test "$_xshape" = yes ; then
6868 _def_xshape='#define HAVE_XSHAPE 1'
6869 else
6870 die "The GUI requires the X11 extension XShape (which was not found)."
6872 echores "$_xshape"
6874 #Check for GTK
6875 if test "$_gtk1" = no ; then
6876 #Check for GTK2 :
6877 echocheck "GTK+ version"
6879 if pkg-config gtk+-2.0 --exists ; then
6880 _gtk=`pkg-config gtk+-2.0 --modversion 2>/dev/null`
6881 _inc_gtk=`pkg-config gtk+-2.0 --cflags 2>/dev/null`
6882 _ld_gtk=`pkg-config gtk+-2.0 --libs 2>/dev/null`
6883 echores "$_gtk"
6885 # Check for GLIB2
6886 if pkg-config glib-2.0 --exists ; then
6887 echocheck "glib version"
6888 _glib=`pkg-config glib-2.0 --modversion 2>/dev/null`
6889 _inc_glib=`pkg-config glib-2.0 --cflags 2>/dev/null`
6890 _ld_glib=`pkg-config glib-2.0 --libs 2>/dev/null`
6891 echores "$_glib"
6893 _def_gui='#define HAVE_NEW_GUI 1'
6894 _def_gtk2_gui='#define HAVE_GTK2_GUI 1'
6895 _ld_gui='$(GTKLIB) $(GLIBLIB)'
6896 else
6897 _gtk1=yes
6898 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
6900 else
6901 echo "GTK-2 devel packages were not found, trying GTK 1.2"
6902 _gtk1=yes
6906 if test "$_gtk1" = yes ; then
6907 # Check for old GTK (1.2.x)
6908 echocheck "GTK version"
6909 if test -z "$_gtkconfig" ; then
6910 if ( gtk-config --version ) >/dev/null 2>&1 ; then
6911 _gtkconfig="gtk-config"
6912 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
6913 _gtkconfig="gtk12-config"
6914 else
6915 die "The GUI requires GTK devel packages (which were not found)."
6918 _gtk=`$_gtkconfig --version 2>&1`
6919 _inc_gtk=`$_gtkconfig --cflags 2>&1`
6920 _ld_gtk=`$_gtkconfig --libs 2>&1`
6921 echores "$_gtk (using $_gtkconfig)"
6923 # Check for GLIB
6924 echocheck "glib version"
6925 if test -z "$_glibconfig" ; then
6926 if ( glib-config --version ) >/dev/null 2>&1 ; then
6927 _glibconfig="glib-config"
6928 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
6929 _glibconfig="glib12-config"
6930 else
6931 die "The GUI requires GLib devel packages (which were not found)"
6934 _glib=`$_glibconfig --version 2>&1`
6935 _inc_glib=`$_glibconfig --cflags 2>&1`
6936 _ld_glib=`$_glibconfig --libs 2>&1`
6937 echores "$_glib (using $_glibconfig)"
6939 _def_gui='#define HAVE_NEW_GUI 1'
6940 _def_gtk2_gui='#undef HAVE_GTK2_GUI'
6941 _ld_gui='$(GTKLIB) $(GLIBLIB)'
6944 echo "Creating Gui/config.mak"
6945 cat > Gui/config.mak << EOF
6946 # -------- Generated by configure -----------
6948 GTKINC = $_inc_gtk
6949 GTKLIBS = $_ld_gtk
6950 GLIBINC = $_inc_glib
6951 GLIBLIBS = $_ld_glib
6955 else
6956 _def_gui='#undef HAVE_NEW_GUI'
6957 _def_gtk2_gui='#undef HAVE_GTK2_GUI'
6959 # --------------- GUI specific tests end -------------------
6961 if test "$_charset" = "noconv" ; then
6962 _charset=""
6963 elif test -z "$_charset" ; then
6964 if test "$_gtk1" = yes ; then
6965 _charset=`cat ${_mp_help}.charset`
6966 else
6967 _charset="UTF-8"
6970 if test "$_charset" ; then
6971 _def_charset="#define MSG_CHARSET \"$_charset\""
6972 else
6973 _def_charset="#undef MSG_CHARSET"
6977 #############################################################################
6979 # Checking for CFLAGS
6980 _stripbinaries=yes
6981 if test "$_profile" != "" || test "$_debug" != "" ; then
6982 CFLAGS="-W -Wall -O2 $_march $_mcpu $_debug $_profile"
6983 if test "$_cc_major" -ge "3" ; then
6984 CFLAGS=`echo "$CFLAGS" | sed -e 's/\(-Wall\)/\1 -Wno-unused-parameter/'`
6986 _stripbinaries=no
6987 elif test -z "$CFLAGS" ; then
6988 CFLAGS="-O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
6989 # always compile with '-g' if .developer:
6990 if test -f ".developer" ; then
6991 CFLAGS="-g $CFLAGS"
6992 if test "$_crash_debug" = auto && not mingw32 ; then
6993 _crash_debug=yes
6995 _stripbinaries=no
6997 else
6998 _warn_CFLAGS=yes
7001 echocheck "automatic gdb attach"
7002 if test "$_crash_debug" = yes ; then
7003 _def_crash_debug='#define CRASH_DEBUG 1'
7004 else
7005 _def_crash_debug='#undef CRASH_DEBUG'
7006 _crash_debug=no
7008 echores "$_crash_debug"
7010 if darwin ; then
7011 CFLAGS="$CFLAGS -mdynamic-no-pic -falign-loops=16 -DSYS_DARWIN"
7012 if [ "$_cc_major" = 3 ] && [ "$_cc_minor" -lt 1 ]; then
7013 CFLAGS="$CFLAGS -no-cpp-precomp"
7016 # libavcodec (from ffmpeg) requires CONFIG_DARWIN to enable AltiVec on Darwin/MacOSX
7017 test "$_altivec" = yes && CFLAGS="$CFLAGS -DCONFIG_DARWIN"
7019 if hpux ; then
7020 # use flag for HPUX missing setenv()
7021 CFLAGS="$CFLAGS -DHPUX"
7023 # Thread support
7024 if linux ; then
7025 CFLAGS="$CFLAGS -D_REENTRANT"
7026 elif bsd ; then
7027 # FIXME bsd needs this so maybe other OS'es
7028 CFLAGS="$CFLAGS -D_THREAD_SAFE"
7030 # 64 bit file offsets?
7031 if test "$_largefiles" = yes || freebsd ; then
7032 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
7033 if test "$_dvdread" = yes ; then
7034 # dvdread support requires this (for off64_t)
7035 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
7039 echocheck "compiler support for -fno-PIC"
7040 if x86; then
7041 cat > $TMPC <<EOF
7042 int main(void) { return 0; }
7044 if cc_check -fno-PIC ; then
7045 CFLAGS="-fno-PIC $CFLAGS"
7046 echores "yes"
7047 else
7048 echores "no"
7050 else
7051 echores "only used for x86"
7054 echocheck "compiler support for noexecstack"
7055 cat > $TMPC <<EOF
7056 int main(void) { return 0; }
7058 if cc_check -Wl,-z,noexecstack ; then
7059 _ld_extra="-Wl,-z,noexecstack $_ld_extra"
7060 echores "yes"
7061 else
7062 echores "no"
7065 echocheck "ftello()"
7066 # if we don't have ftello use the osdep/ compatibility module
7067 cat > $TMPC << EOF
7068 #include <stdio.h>
7069 #include <sys/types.h>
7070 int main (void) { ftello(stdin); return 0; }
7072 _ftello=no
7073 cc_check && _ftello=yes
7074 if test "$_ftello" = yes ; then
7075 _def_ftello='#define HAVE_FTELLO 1'
7076 else
7077 _def_ftello='#undef HAVE_FTELLO'
7079 echores "$_ftello"
7081 # Determine OS dependent libs
7082 if cygwin ; then
7083 _def_confwin32='#define WIN32'
7084 #CFLAGS="$CFLAGS -D__CYGWIN__ -D__CYGWIN_USE_BIG_TYPES__"
7085 # stat.st_size with BIG_TYPES is broken (not set) ::atmos
7086 CFLAGS="$CFLAGS -D__CYGWIN__"
7089 if win32 ; then
7090 _confwin32='TARGET_WIN32 = yes'
7091 else
7092 _confwin32='TARGET_WIN32 = no'
7095 # Dynamic linking flags
7096 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
7097 _ld_dl_dynamic=''
7098 bsd && _ld_dl_dynamic='-rdynamic'
7099 if test "$_real" = yes || test "$_xanim" = yes && not win32 && not qnx && not darwin ; then
7100 _ld_dl_dynamic='-rdynamic'
7103 _ld_arch="$_ld_arch $_ld_pthread $_ld_dl $_ld_dl_dynamic"
7104 bsdos && _ld_arch="$_ld_arch -ldvd"
7105 if netbsd ; then
7106 x86 && _ld_arch="$_ld_arch -li386"
7109 _def_debug='#undef MP_DEBUG'
7110 test "$_debug" != "" && _def_debug='#define MP_DEBUG 1'
7112 _def_linux='#undef TARGET_LINUX'
7113 linux && _def_linux='#define TARGET_LINUX 1'
7115 # TODO cleanup the VIDIX stuff here
7116 echocheck "VIDIX"
7117 _def_vidix='#define CONFIG_VIDIX 1'
7118 test "$_vidix" = no && _def_vidix='#undef CONFIG_VIDIX'
7119 if test "$_vidix" = yes; then
7120 _vosrc="$_vosrc vo_cvidix.c"
7121 _vomodules="cvidix $_vomodules"
7122 else
7123 _novomodules="cvidix $_novomodules"
7125 if test "$_vidix" = yes && win32; then
7126 _vosrc="$_vosrc vo_winvidix.c"
7127 _vomodules="winvidix $_vomodules"
7128 _ld_win32libs="-lgdi32 $_ld_win32libs"
7129 else
7130 _novomodules="winvidix $_novomodules"
7132 if test "$_vidix" = yes && test "$_x11" = yes; then
7133 _vosrc="$_vosrc vo_xvidix.c"
7134 _vomodules="xvidix $_vomodules"
7135 else
7136 _novomodules="xvidix $_novomodules"
7138 echores "$_vidix"
7140 echocheck "joystick"
7141 _def_joystick='#undef HAVE_JOYSTICK'
7142 if test "$_joystick" = yes ; then
7143 if linux ; then
7144 # TODO add some check
7145 _def_joystick='#define HAVE_JOYSTICK 1'
7146 else
7147 _joystick="no (unsupported under $system_name)"
7150 echores "$_joystick"
7152 echocheck "lirc"
7153 if test "$_lirc" = auto ; then
7154 _lirc=no
7155 if test -c /dev/lirc -o -c /dev/lirc/0 ; then
7156 cat > $TMPC <<EOF
7157 #include <lirc/lirc_client.h>
7158 int main(void) { return 0; }
7160 cc_check -llirc_client && _lirc=yes
7163 if test "$_lirc" = yes ; then
7164 _def_lirc='#define HAVE_LIRC 1'
7165 _ld_lirc='-llirc_client'
7166 else
7167 _def_lirc='#undef HAVE_LIRC'
7169 echores "$_lirc"
7171 echocheck "lircc"
7172 if test "$_lircc" = auto ; then
7173 _lircc=no
7174 cat > $TMPC <<EOF
7175 #include <lirc/lircc.h>
7176 int main(void) { return 0; }
7178 cc_check -llircc && _lircc=yes
7180 if test "$_lircc" = yes ; then
7181 _def_lircc='#define HAVE_LIRCC 1'
7182 _ld_lircc='-llircc'
7183 else
7184 _def_lircc='#undef HAVE_LIRCC'
7186 echores "$_lircc"
7188 #############################################################################
7189 echo "Creating config.mak"
7190 cat > config.mak << EOF
7191 # -------- Generated by configure -----------
7193 LANG = C
7194 MAN_LANG = $MAN_LANG
7195 TARGET_OS = $system_name
7196 DESTDIR =
7197 prefix = \$(DESTDIR)$_prefix
7198 BINDIR = \$(DESTDIR)$_bindir
7199 DATADIR = \$(DESTDIR)$_datadir
7200 MANDIR = \$(DESTDIR)$_mandir
7201 CONFDIR = \$(DESTDIR)$_confdir
7202 LIBDIR = \$(DESTDIR)$_libdir
7203 # FFmpeg uses libdir instead of LIBDIR
7204 libdir = \$(LIBDIR)
7205 #AR = ar
7206 CC = $_cc
7207 HOST_CC = $_host_cc
7208 AWK = $_awk
7209 RANLIB = $_ranlib
7210 INSTALL = $_install
7211 # OPTFLAGS = -O4 $_profile $_debug $_march $_mcpu $_pipe -fomit-frame-pointer -ffast-math
7212 EXTRA_INC = $_inc_extra
7213 OPTFLAGS = -I../libvo -I../../libvo $_inc_x11 $CFLAGS \$(EXTRA_INC)
7214 STRIPBINARIES = $_stripbinaries
7215 CHARSET = $_charset
7216 HELP_FILE = $_mp_help
7218 PRG = $_prg
7219 PRG_MENCODER = $_prg_mencoder
7221 $_live_libs_def
7223 MPLAYER_NETWORK = $_network
7224 STREAMING_LIVE555 = $_live
7225 MPLAYER_NETWORK_LIB = $_ld_live $_ld_vstream $_ld_network
7226 DVBIN = $_dvbin
7227 VIDIX = $_vidix
7228 CONFIG_PP = yes
7229 CONFIG_MP3LAME = $_mp3lame
7230 LIBMENU = $_menu
7231 I18NLIBS = $_i18n_libs
7232 MATROSKA = $_matroska_internal
7234 OPENDIVX = $_opendivx
7236 MP3LIB = $_mp3lib
7237 LIBA52 = $_liba52
7238 LIBMPEG2 = $_libmpeg2
7239 TREMOR = $_tremor_internal
7240 TREMOR_FLAGS = $_tremor_flags
7242 SPEEX = $_speex
7243 MUSEPACK = $_musepack
7245 UNRARLIB = $_unrarlib
7246 PNG = $_mkf_png
7247 JPEG = $_mkf_jpg
7248 GIF = $_mkf_gif
7250 EXTRA_LIB = $_ld_extra
7251 Z_LIB = $_ld_static $_ld_zlib
7252 HAVE_MLIB = $_mlib
7253 WIN32_LIB = $_ld_win32libs
7254 STATIC_LIB = $_ld_static
7255 ENCA_LIB = $_ld_enca
7256 HAVE_PTHREADS = $_pthreads
7257 MATH_LIB = $_ld_lm
7258 LIBC_LIB = $_ld_libC
7260 X11_INC = $_inc_x11
7261 X11DIR = $_ld_x11
7263 HAVE_XVMC_ACCEL = $_xvmc
7265 # for FFmpeg
7266 SRC_PATH=`pwd`
7267 LIBPREF=lib
7268 LIBSUF=.a
7269 LIB=\$(LIBPREF)\$(NAME)\$(LIBSUF)
7271 # video output
7272 X_LIB = $_ld_gl $_ld_dga $_ld_xv $_ld_xvmc $_ld_vm $_ld_xinerama $_ld_x11 $_ld_sock
7273 GGI_LIB = $_ld_ggi
7274 MLIB_LIB = $_ld_mlib
7275 MLIB_INC = $_inc_mlib
7276 DXR2_INC = $_inc_dxr2
7277 DVB_INC = $_inc_dvb
7278 PNG_LIB = $_ld_png
7279 JPEG_LIB = $_ld_jpg
7280 GIF_LIB = $_ld_gif
7281 SDL_LIB = $_ld_sdl
7282 SVGA_LIB = $_ld_svga
7283 VESA_LIB = $_ld_vesa
7284 AA_LIB = $_ld_aa
7285 CACA_INC = $_inc_caca
7286 CACA_LIB = $_ld_caca
7288 # audio output
7289 ALSA_LIB = $_ld_alsa
7290 NAS_LIB = $_ld_nas
7291 ARTS_LIB = $_ld_arts
7292 ARTS_INC = $_inc_arts
7293 ESD_LIB = $_ld_esd
7294 ESD_INC = $_inc_esd
7295 POLYP_LIB = $_ld_polyp
7296 POLYP_INC = $_inc_polyp
7297 JACK_LIB = $_ld_jack
7298 JACK_INC = $_inc_jack
7299 OPENAL_LIB = $_ld_openal
7300 OPENAL_INC = $_inc_openal
7301 SGIAUDIO_LIB = $_ld_sgiaudio
7303 # input/demuxer/codecs
7304 TERMCAP_LIB = $_ld_termcap
7305 LIRC_LIB = $_ld_lirc
7306 LIRCC_LIB = $_ld_lircc
7307 HAVE_DVD = $_have_dvd
7308 DVDREAD = $_dvdread
7309 DVDREAD_LIB = $_ld_dvdread
7310 DVDKIT = $_dvdkit
7311 DVDKIT2 = $_dvdkit2
7312 DVDKIT_SHARED = no
7313 SDL_INC = $_inc_sdl
7314 W32_DEP = $_dep_win32
7315 W32_LIB = $_ld_win32
7316 DS_DEP = $_dep_dshow
7317 DS_LIB = $_ld_dshow
7318 AV_DEP = $_dep_libavcodec $_dep_libavformat $_dep_libavutil $_dep_libpostproc
7319 AV_LIB = $_ld_libavcodec $_ld_libavformat $_ld_libavutil $_ld_libpostproc
7320 CONFIG_LIBAVUTIL = $_libavutil
7321 CONFIG_LIBAVCODEC = $_libavcodec
7322 CONFIG_LIBAVCODEC_SO = $_libavcodec_so
7323 CONFIG_LIBAVFORMAT = $_libavformat
7324 CONFIG_LIBAVFORMAT_SO = $_libavformat_so
7325 CONFIG_LIBPOSTPROC = $_libpostproc
7326 CONFIG_LIBPOSTPROC_SO = $_libpostproc_so
7327 ZORAN = $_zr
7328 FAME = $_fame
7329 FAME_LIB = $_ld_fame
7330 MP1E_DEP = $_dep_mp1e
7331 MP1E_LIB = $_ld_mp1e
7332 ARCH_LIB = $_ld_arch $_ld_iconv
7333 XVID = $_xvid
7334 XVID_INC = $_inc_xvid
7335 XVID_LIB = $_ld_xvid
7336 X264 = $_x264
7337 X264_INC = $_inc_x264
7338 X264_LIB = $_ld_x264
7339 CONFIG_DTS = $_libdts
7340 DTS_INC = $_inc_libdts
7341 DTS_LIB = $_ld_libdts
7342 DECORE_LIB = $_ld_decore $_ld_mp3lame
7343 MENCODER = $_mencoder
7344 ENCORE_LIB = $_ld_encore $_ld_mp3lame
7345 DIRECTFB_INC = $_inc_directfb
7346 DIRECTFB_LIB = $_ld_directfb
7347 CDPARANOIA_INC = $_inc_cdparanoia
7348 CDPARANOIA_LIB = $_ld_cdparanoia
7349 FREETYPE_INC = $_inc_freetype
7350 FREETYPE_LIB = $_ld_freetype
7351 FONTCONFIG_INC = $_inc_fontconfig
7352 FONTCONFIG_LIB = $_ld_fontconfig
7353 FRIBIDI_INC = $_inc_fribidi
7354 FRIBIDI_LIB = $_ld_fribidi
7355 LIBCDIO_INC = $_inc_libcdio
7356 LIBCDIO_LIB = $_ld_libcdio
7357 LIBLZO_LIB= $_ld_liblzo
7358 MAD_LIB = $_ld_mad
7359 VORBIS_LIB = $_ld_vorbis $_ld_libdv
7360 SPEEX_LIB = $_ld_speex
7361 THEORA_LIB = $_ld_theora
7362 FAAD_LIB = $_ld_faad
7363 INTERNAL_FAAD = $_faad_internal
7364 SMBSUPPORT_LIB = $_ld_smb
7365 XMMS_PLUGINS = $_xmms
7366 XMMS_LIB = $_xmms_lib
7367 MACOSX = $_macosx
7368 MACOSX_FINDER_SUPPORT = $_macosx_finder_support
7369 MACOSX_BUNDLE = $_macosx_bundle
7370 MACOSX_FRAMEWORKS = $_macosx_frameworks
7371 MACOSX_COREVIDEO = $_macosx_corevideo
7372 TOOLAME=$_toolame
7373 TOOLAME_EXTRAFLAGS=$_toolame_extraflags
7374 TOOLAME_LIB=$_toolame_lib
7375 TWOLAME=$_twolame
7376 TWOLAME_LIB=$_twolame_lib
7377 MUSEPACK_LIB = $_ld_musepack
7378 FAAC=$_faac
7379 FAAC_LIB=$_ld_faac
7380 AMR_NB=$_amr_nb
7381 AMR_NB_FIXED=$_amr_nb_fixed
7382 AMR_WB=$_amr_wb
7383 `echo $_libavcodecs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'`
7384 CONFIG_FAAC=$_faac
7385 CONFIG_GPL=yes
7386 CONFIG_MUXERS=yes
7388 # --- Some stuff for autoconfigure ----
7389 $_target_arch
7390 $_confwin32
7391 TARGET_CPU=$iproc
7392 TARGET_MMX = $_mmx
7393 TARGET_MMX2 = $_mmx2
7394 TARGET_3DNOW = $_3dnow
7395 TARGET_3DNOWEX = $_3dnowex
7396 TARGET_SSE = $_sse
7397 TARGET_ALTIVEC = $_altivec
7398 TARGET_VIS = $_vis
7400 # --- GUI stuff ---
7401 GTKINC = $_inc_gtk
7402 GTKLIB = $_ld_static $_ld_gtk
7403 GLIBLIB = $_ld_static $_ld_glib
7404 GTK_LIBS = $_ld_static $_ld_gui
7405 GUI = $_gui
7406 DEBUG = -DDEBUG
7410 #############################################################################
7411 echo "Creating config.h"
7412 cat > config.h << EOF
7413 /* -------- This file has been automatically generated by configure ---------
7414 Note: Any changes in it will be lost when you run configure again. */
7416 /* Protect against multiple inclusion */
7417 #ifndef MPLAYER_CONFIG_H
7418 #define MPLAYER_CONFIG_H 1
7420 /* use GNU internationalization */
7421 $_def_i18n
7423 /* name of messages charset */
7424 $_def_charset
7426 /* Runtime CPU detection */
7427 $_def_runtime_cpudetection
7429 /* Dynamic a/v plugins */
7430 $_def_dynamic_plugins
7432 /* "restrict" keyword */
7433 $_def_restrict_keyword
7435 /* __builtin_expect branch prediction hint */
7436 $_def_builtin_expect
7437 #ifdef HAVE_BUILTIN_EXPECT
7438 #define likely(x) __builtin_expect ((x) != 0, 1)
7439 #define unlikely(x) __builtin_expect ((x) != 0, 0)
7440 #else
7441 #define likely(x) (x)
7442 #define unlikely(x) (x)
7443 #endif
7445 /* attribute(used) as needed by some compilers */
7446 #if (__GNUC__ * 100 + __GNUC_MINOR__ >= 300)
7447 # define attribute_used __attribute__((used))
7448 #else
7449 # define attribute_used
7450 #endif
7452 #define PREFIX "$_prefix"
7454 #define USE_OSD 1
7455 #define USE_SUB 1
7457 /* enable/disable SIGHANDLER */
7458 $_def_sighandler
7460 /* enable/disable automatic gdb attach on crash, requires SIGHANDLER */
7461 $_def_crash_debug
7463 /* Toggles debugging informations */
7464 $_def_debug
7466 /* Toggles colorized output */
7467 //#define MSG_USE_COLORS 1
7469 /* Indicates that libcdio is available for VCD and CD-DA playback */
7470 $_def_libcdio
7472 /* Indicates that Ogle's libdvdread is available for DVD playback */
7473 $_def_dvdread
7475 /* Indicates that dvdread is from libmpdvdkit */
7476 $_def_mpdvdkit
7478 /* Additional options for libmpdvdkit*/
7479 $_def_dvd
7480 $_def_cdrom
7481 $_def_cdio
7482 $_def_dvdio
7483 $_def_bsdi_dvd
7484 $_def_dvd_bsd
7485 $_def_dvd_linux
7486 $_dev_dvd_openbsd
7487 $_def_dvd_darwin
7488 $_def_sol_scsi_h
7489 $_def_hpux_scsi_h
7490 $_def_stddef
7491 $_def_have_dvd
7493 /* Common data directory (for fonts, etc) */
7494 #define MPLAYER_DATADIR "$_datadir"
7495 #define MPLAYER_CONFDIR "$_confdir"
7496 #define MPLAYER_LIBDIR "$_libdir"
7498 /* Define this to compile stream-caching support, it can be enabled via
7499 -cache <kilobytes> */
7500 #define USE_STREAM_CACHE 1
7502 /* Define to include support for XviD/Divx4Linux/OpenDivx */
7503 $_def_divx
7505 /* Define to use the new XviD/DivX4Linux library instead of open source OpenDivX */
7506 /* You have to change DECORE_LIBS in config.mak, too! */
7507 $_def_decore
7509 /* Define if you are using DivX5Linux Decore library */
7510 $_def_divx5
7512 /* Define if you are using XviD library */
7513 $_def_xvid3
7514 $_def_xvid4
7515 $_def_decore_xvid
7516 $_def_encore_xvid
7518 /* Define if you are using the X.264 library */
7519 $_def_x264
7521 /* Define to include support for libdv-0.9.5 */
7522 $_def_libdv
7524 /* If build mencoder */
7525 $_mencoder_flag
7527 /* Indicates if XviD/Divx4linux encore is available
7528 Note: for mencoder */
7529 $_def_encore
7531 /* Indicates if libmp3lame is available
7532 Note: for mencoder */
7533 $_def_mp3lame
7534 $_def_mp3lame_preset
7535 $_def_mp3lame_preset_medium
7537 /* Define libmp1e for realtime mpeg encoding (for DXR3 and DVB cards) */
7538 $_def_mp1e
7540 /* Define this to enable avg. byte/sec-based AVI sync method by default:
7541 (use -bps or -nobps commandline option for run-time method selection)
7542 -bps gives better sync for vbr mp3 audio, it is now default */
7543 #define AVI_SYNC_BPS 1
7545 /* Undefine this if you do not want to select mono audio (left or right)
7546 with a stereo MPEG layer 2/3 audio stream. The command line option
7547 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
7548 right-only), with 0 being the default.
7550 #define USE_FAKE_MONO 1
7552 /* Undefine this if your sound card driver has no working select().
7553 If you have kernel Oops, player hangups, or just no audio, you should
7554 try to recompile MPlayer with this option disabled! */
7555 $_def_select
7557 /* define this to use iconv(3) function to codepage conversions */
7558 $_def_iconv
7560 /* define this to use nl_langinfo function */
7561 $_def_langinfo
7563 /* define this to use RTC (/dev/rtc) for video timers */
7564 $_def_rtc
7566 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
7567 #define MAX_OUTBURST 65536
7569 /* set up audio OUTBURST. Do not change this! */
7570 #define OUTBURST 512
7572 /* Define this if your system has the header file for the OSS sound interface */
7573 $_def_sys_soundcard
7575 /* Define this if your system has the header file for the OSS sound interface
7576 * in /usr/include */
7577 $_def_soundcard
7579 /* Define this if your system has the sysinfo header */
7580 $_def_sys_sysinfo
7582 /* Define this if your system has ftello() */
7584 $_def_ftello
7585 #ifndef HAVE_FTELLO
7586 /* Need these for FILE and off_t an config.h is usually before other includes*/
7587 #include <stdio.h>
7588 #include <sys/types.h>
7589 off_t ftello(FILE *);
7590 #endif
7592 /* Define this if your system has the "malloc.h" header file */
7593 $_def_malloc
7595 /* memalign is mapped to malloc if unsupported */
7596 $_def_memalign
7597 #ifndef HAVE_MEMALIGN
7598 # define memalign(a,b) malloc(b)
7599 #define MEMALIGN_HACK 1
7600 #endif
7602 /* Define this if your system has the "alloca.h" header file */
7603 $_def_alloca
7605 /* Define this if your system has the "sys/mman.h" header file */
7606 $_def_mman
7607 $_def_mman_has_map_failed
7609 /* Define this if you have the elf dynamic linker -ldl library */
7610 $_def_dl
7612 /* Define this if you have the kstat kernel statistics library */
7613 $_def_kstat
7615 /* Define this if you have zlib */
7616 $_def_zlib
7617 #ifdef HAVE_ZLIB
7618 #define CONFIG_ZLIB 1
7619 #endif
7621 /* Define this if you have shm support */
7622 $_def_shm
7624 /* Define this if your system has scandir & alphasort */
7625 $_def_scandir
7627 /* Define this if your system has strsep */
7628 $_def_strsep
7630 /* Define this if your system has strlcpy */
7631 $_def_strlcpy
7632 #ifndef HAVE_STRLCPY
7633 unsigned int strlcpy (char *dest, const char *src, unsigned int size);
7634 #endif
7636 /* Define this if your system has strlcat */
7637 $_def_strlcat
7638 #ifndef HAVE_STRLCAT
7639 unsigned int strlcat (char *dest, const char *src, unsigned int size);
7640 #endif
7642 /* Define this if your system has fseeko */
7643 $_def_fseeko
7644 #ifndef HAVE_FSEEKO
7645 /* Need these for FILE and off_t an config.h is usually before other includes*/
7646 #include <stdio.h>
7647 #include <sys/types.h>
7648 int fseeko(FILE *, off_t, int);
7649 #endif
7651 $_def_localtime_r
7653 /* Define this if your system has vsscanf */
7654 $_def_vsscanf
7656 /* Define this if your system has swab */
7657 $_def_swab
7659 /* Define this if your system has no posix select */
7660 $_def_no_posix_select
7662 /* Define this if your system has gettimeofday */
7663 $_def_gettimeofday
7665 /* Define this if your system has glob */
7666 $_def_glob
7668 /* Define this if your system has setenv */
7669 $_def_setenv
7670 #ifndef HAVE_SETENV
7671 int setenv(const char *name, const char *val, int overwrite);
7672 #endif
7674 /* Define this if your system has pthreads */
7675 $_def_pthreads
7677 /* Define this if you enabled thread support for libavcodec */
7678 $_def_threads
7680 /* LIRC (remote control, see www.lirc.org) support: */
7681 $_def_lirc
7684 * LIRCCD (LIRC client daemon)
7685 * See http://www.dolda2000.cjb.net/~fredrik/lirccd/
7687 $_def_lircc
7689 /* DVD navigation support using libdvdnav */
7690 $_def_dvdnav
7691 $_def_dvdnav_version
7693 /* Define this to enable MPEG 1/2 image postprocessing (requires a FAST CPU!) */
7694 #define MPEG12_POSTPROC 1
7696 /* Define this to enable image postprocessing in libavcodec (requires a FAST CPU!) */
7697 $_def_libpostproc
7698 $_def_libpostproc_so
7700 /* Define to include support for OpenDivx postprocessing */
7701 $_def_odivx_postprocess
7703 /* Win32 DLL support */
7704 $_def_win32
7705 #define WIN32_PATH "$_win32libdir"
7707 /* DirectShow support */
7708 $_def_dshow
7710 /* Mac OS X specific features */
7711 $_def_macosx
7712 $_def_macosx_finder_support
7713 $_def_macosx_bundle
7714 $_def_macosx_corevideo
7716 /* Build our Win32-loader */
7717 $_def_win32_loader
7719 /* ffmpeg's libavcodec support (requires libavcodec source) */
7720 $_def_libavcodec
7721 $_def_libavcodec_so
7723 /* ffmpeg's libavformat support (requires libavformat source) */
7724 $_def_libavformat
7725 $_def_libavformat_so
7726 $_def_libavformat_win32
7728 /* Use libavcodec's decoders */
7729 #define CONFIG_DECODERS 1
7730 /* Use libavcodec's encoders */
7731 #define CONFIG_ENCODERS 1
7733 /* Use libavformat's demuxers */
7734 #define CONFIG_DEMUXERS 1
7735 /* Use libavformat's muxers */
7736 #define CONFIG_MUXERS 1
7738 #define CONFIG_MPEGAUDIO_HP 1
7740 #define CONFIG_GPL 1
7742 /* Use amr codecs from libavcodec (requires amr sources) */
7743 $_def_amr_nb
7744 $_def_amr_nb_fixed
7745 $_def_amr_wb
7747 /* Use specific codecs from libavcodec */
7748 `echo $_libavcodecs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/#define CONFIG_/;s/$/ 1/'`
7749 $_def_lavc_faac
7751 /* Use codec libs included in mplayer CVS / source dist: */
7752 $_def_mp3lib
7753 $_def_liba52
7754 $_def_libdts
7755 $_def_libmpeg2
7757 /* Use libfame encoder filter */
7758 $_def_fame
7760 /* XAnim DLL support */
7761 $_def_xanim
7762 /* Default search path */
7763 $_def_xanim_path
7765 /* RealPlayer DLL support */
7766 $_def_real
7767 /* Default search path */
7768 $_def_real_path
7770 /* LIVE555 Streaming Media library support */
7771 $_def_live
7773 /* Use 3dnow/mmxext/sse/mmx optimized fast memcpy() [maybe buggy... signal 4]*/
7774 $_def_fastmemcpy
7776 /* Use unrarlib for Vobsubs */
7777 $_def_unrarlib
7779 /* gui support, please do not edit this option */
7780 $_def_gui
7781 $_def_gtk2_gui
7783 /* Audio output drivers */
7784 $_def_ossaudio
7785 $_def_ossaudio_devdsp
7786 $_def_ossaudio_devmixer
7787 $_def_alsa5
7788 $_def_alsa9
7789 $_def_alsa1x
7790 $_def_arts
7791 $_def_esd
7792 $_def_esd_latency
7793 $_def_polyp
7794 $_def_jack
7795 $_def_openal
7796 $_def_sys_asoundlib_h
7797 $_def_alsa_asoundlib_h
7798 $_def_sunaudio
7799 $_def_sgiaudio
7800 $_def_win32waveout
7801 $_def_nas
7803 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
7804 #undef FAST_OSD
7805 #undef FAST_OSD_TABLE
7807 /* Enable TV Interface support */
7808 $_def_tv
7810 /* Enable EDL support */
7811 $_def_edl
7813 /* Enable Video 4 Linux TV interface support */
7814 $_def_tv_v4l
7816 /* Enable Video 4 Linux 2 TV interface support */
7817 $_def_tv_v4l2
7819 /* Enable *BSD BrookTree TV interface support */
7820 $_def_tv_bsdbt848
7822 /* Define if your processor stores words with the most significant
7823 byte first (like Motorola and SPARC, unlike Intel and VAX). */
7824 $_def_words_endian
7826 $_def_arch
7828 /* For the PPC. G5 has the dcbzl when in 64bit mode but G4s and earlier do not
7829 have the instruction. */
7830 $_def_dcbzl
7832 /* libmpeg2 wants ARCH_PPC and the rest of mplayer use ARCH_POWERPC,
7833 * define ARCH_PPC if ARCH_POWERPC is set to cope with that.
7835 #ifdef ARCH_POWERPC
7836 #define ARCH_PPC 1
7837 #endif
7839 /* the same issue as with ARCH_POWERPC but with ffmpeg/libavcodec */
7840 #ifdef ARCH_ARMV4L
7841 #define ARCH_ARM 1
7842 #endif
7844 /* only gcc3 can compile mvi instructions */
7845 $_def_gcc_mvi_support
7847 /* Define this for Cygwin build for win32 */
7848 $_def_confwin32
7850 /* Define this to any prefered value from 386 up to infinity with step 100 */
7851 #define __CPU__ $iproc
7853 $_mp_wordsize
7855 $_def_linux
7857 $_def_vcd
7859 #ifdef sun
7860 #define DEFAULT_CDROM_DEVICE "/vol/dev/aliases/cdrom0"
7861 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
7862 #elif defined(HPUX)
7863 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
7864 #define DEFAULT_DVD_DEVICE "/dev/dvd"
7865 #elif defined(WIN32)
7866 #define DEFAULT_CDROM_DEVICE "D:"
7867 #define DEFAULT_DVD_DEVICE "D:"
7868 #elif defined(SYS_DARWIN)
7869 #define DEFAULT_CDROM_DEVICE "/dev/disk1"
7870 #define DEFAULT_DVD_DEVICE "/dev/rdiskN"
7871 #elif defined(__OpenBSD__)
7872 #define DEFAULT_CDROM_DEVICE "/dev/rcd0a"
7873 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
7874 #elif defined(__FreeBSD__)
7875 #define DEFAULT_CDROM_DEVICE "/dev/acd0"
7876 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
7877 #else
7878 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
7879 #define DEFAULT_DVD_DEVICE "/dev/dvd"
7880 #endif
7883 /*----------------------------------------------------------------------------
7885 ** NOTE: Instead of modifying these definitions here, use the
7886 ** --enable/--disable options of the ./configure script!
7887 ** See ./configure --help for details.
7889 *---------------------------------------------------------------------------*/
7891 /* C99 lrintf function available */
7892 $_def_lrintf
7894 /* round function is available */
7895 $_def_round
7897 /* yes, we have inttypes.h */
7898 #define HAVE_INTTYPES_H 1
7900 /* int_fastXY_t emulation */
7901 $_def_fast_inttypes
7903 /* nanosleep support */
7904 $_def_nanosleep
7906 /* SMB support */
7907 $_def_smbsupport
7909 /* termcap flag for getch2.c */
7910 $_def_termcap
7912 /* termios flag for getch2.c */
7913 $_def_termios
7914 $_def_termios_h
7915 $_def_termios_sys_h
7917 /* enable PNG support */
7918 $_def_png
7920 /* enable JPEG support */
7921 $_def_jpg
7923 /* enable PNM support */
7924 $_def_pnm
7926 /* enable md5sum support */
7927 $_def_md5sum
7929 /* enable GIF support */
7930 $_def_gif
7931 $_def_gif_4
7932 $_def_gif_tvt_hack
7934 /* enable FreeType support */
7935 $_def_freetype
7937 /* enable Fontconfig support */
7938 $_def_fontconfig
7940 /* enable FriBiDi usage */
7941 $_def_fribidi
7943 /* enable ENCA usage */
7944 $_def_enca
7946 /* liblzo support */
7947 $_def_liblzo
7948 #ifdef USE_LIBLZO
7949 #define CONFIG_LZO 1
7950 #endif
7952 /* libmad support */
7953 $_def_mad
7955 /* enable OggVorbis support */
7956 $_def_vorbis
7958 /* enable Tremor as vorbis decoder */
7959 $_def_tremor
7961 /* enable Speex support */
7962 $_def_speex
7964 /* enable musepack support */
7965 $_def_musepack
7967 /* enable OggTheora support */
7968 $_def_theora
7970 /* enable Matroska support */
7971 $_def_matroska
7973 /* enable FAAD (AAC) support */
7974 $_def_faad
7975 $_def_faad_internal
7977 /* enable FAAC (AAC encoder) support */
7978 $_def_faac
7980 /* enable LADSPA plugin support */
7981 $_def_ladspa
7983 /* enable network */
7984 $_def_network
7986 /* enable ftp support */
7987 $_def_ftp
7989 /* enable vstream support */
7990 $_def_vstream
7992 /* enable winsock2 instead of Unix functions*/
7993 $_def_winsock2
7995 /* define this to use inet_aton() instead of inet_pton() */
7996 $_def_use_aton
7998 /* enables / disables cdparanoia support */
7999 $_def_cdparanoia
8001 /* enables / disables VIDIX usage */
8002 $_def_vidix
8004 /* enables / disables new input joystick support */
8005 $_def_joystick
8007 /* enables / disables QTX codecs */
8008 $_def_qtx
8010 /* enables / disables osd menu */
8011 $_def_menu
8013 /* enables / disables subtitles sorting */
8014 $_def_sortsub
8016 /* XMMS input plugin support */
8017 $_def_xmms
8018 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
8020 /* enables inet6 support */
8021 $_def_inet6
8023 /* do we have gethostbyname2? */
8024 $_def_gethostbyname2
8026 /* Extension defines */
8027 $_def_3dnow // only define if you have 3DNOW (AMD k6-2, AMD Athlon, iDT WinChip, etc.)
8028 $_def_3dnowex // only define if you have 3DNOWEX (AMD Athlon, etc.)
8029 $_def_mmx // only define if you have MMX (newer x86 chips, not P54C/PPro)
8030 $_def_mmx2 // only define if you have MMX2 (Athlon/PIII/4/CelII)
8031 $_def_sse // only define if you have SSE (Intel Pentium III/4 or Celeron II)
8032 $_def_sse2 // only define if you have SSE2 (Intel Pentium 4)
8033 $_def_altivec // only define if you have Altivec (G4)
8035 $_def_altivec_h // enables usage of altivec.h
8038 $_def_mlib // Sun mediaLib, available only on solaris
8039 $_def_vis // only define if you have VIS ( ultrasparc )
8041 /* libmpeg2 uses a different feature test macro for mediaLib */
8042 #ifdef HAVE_MLIB
8043 #define LIBMPEG2_MLIB 1
8044 #endif
8046 /* libvo options */
8047 #define SCREEN_SIZE_X 1
8048 #define SCREEN_SIZE_Y 1
8049 $_def_x11
8050 $_def_xv
8051 $_def_xvmc
8052 $_def_vm
8053 $_def_xf86keysym
8054 $_def_xinerama
8055 $_def_gl
8056 $_def_gl_win32
8057 $_def_dga
8058 $_def_dga2
8059 $_def_sdl
8060 /* defined for SDLlib with keyrepeat bugs (before 1.2.1) */
8061 $_def_sdlbuggy
8062 $_def_directx
8063 $_def_ggi
8064 $_def_ggiwmh
8065 $_def_3dfx
8066 $_def_tdfxfb
8067 $_def_tdfxvid
8068 $_def_directfb
8069 $_def_directfb_version
8070 $_def_zr
8071 $_def_bl
8072 $_def_mga
8073 $_def_xmga
8074 $_def_syncfb
8075 $_def_fbdev
8076 $_def_dxr2
8077 $_def_dxr3
8078 $_def_dvb
8079 $_def_dvb_in
8080 $_def_svga
8081 $_def_vesa
8082 $_def_xdpms
8083 $_def_aa
8084 $_def_caca
8085 $_def_tga
8086 $_def_toolame
8087 $_def_twolame
8089 /* used by GUI: */
8090 $_def_xshape
8092 #if defined(HAVE_GL) || defined(HAVE_X11) || defined(HAVE_XV)
8093 #define X11_FULLSCREEN 1
8094 #endif
8096 #endif /* MPLAYER_CONFIG_H */
8099 #############################################################################
8101 echo "Creating libvo/config.mak"
8102 _voobj=`echo $_vosrc | sed -e 's/\.c/\.o/g;s/\.m/\.o/g'`
8103 cat > libvo/config.mak << EOF
8104 include ../config.mak
8105 OPTIONAL_SRCS = $_vosrc
8106 OPTIONAL_OBJS = $_voobj
8109 #############################################################################
8111 echo "Creating libao2/config.mak"
8112 _aoobj=`echo $_aosrc | sed -e 's/\.c/\.o/g'`
8113 cat > libao2/config.mak << EOF
8114 include ../config.mak
8115 OPTIONAL_SRCS = $_aosrc
8116 OPTIONAL_OBJS = $_aoobj
8119 #############################################################################
8121 echo "Creating libaf/config.mak"
8122 _afobj=`echo $_afsrc | sed -e 's/\.c/\.o/g'`
8123 cat > libaf/config.mak << EOF
8124 include ../config.mak
8125 OPTIONAL_SRCS = $_afsrc
8126 OPTIONAL_OBJS = $_afobj
8129 #############################################################################
8131 cat << EOF
8133 Config files successfully generated by ./configure !
8135 Install prefix: $_prefix
8136 Data directory: $_datadir
8137 Config direct.: $_confdir
8139 Byte order: $_byte_order
8140 Optimizing for: $_optimizing
8142 Languages:
8143 Messages/GUI: $_language
8146 echo -n " Manual pages: $MAN_LANG"
8147 test "$LANGUAGES" = en && echo -n " (no localization selected, use --language=all)"
8148 echo
8150 cat << EOF
8152 Enabled optional drivers:
8153 Input: $_inputmodules
8154 Codecs: $_codecmodules
8155 Audio output: $_aomodules
8156 Video output: $_vomodules
8157 Audio filters: $_afmodules
8158 Disabled optional drivers:
8159 Input: $_noinputmodules
8160 Codecs: $_nocodecmodules
8161 Audio output: $_noaomodules
8162 Video output: $_novomodules
8163 Audio filters: $_noafmodules
8165 'config.h' and 'config.mak' contain your configuration options.
8166 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
8167 compile *** DO NOT REPORT BUGS if you tweak these files ***
8169 'make' will now compile MPlayer and 'make install' will install it.
8170 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
8175 if test "$_mtrr" = yes ; then
8176 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$_doc_lang/video.html#mtrr)"
8177 echo
8180 if test "$_sdl" = "outdated" ; then
8181 cat <<EOF
8182 You have an outdated version of libSDL installed (older than v1.1.7) and SDL
8183 support has therefore been disabled.
8185 Please upgrade to a more recent version (version 1.1.8 and above are known to
8186 work). You may get this library from: http://www.libsdl.org
8188 You need to rerun ./configure and recompile after updating SDL. If you are
8189 only interested in the libSDL audio drivers, then an older version might work.
8191 Use --enable-sdl to force usage of libSDL.
8196 if x86; then
8197 if test "$_win32" = no ; then
8198 if test "$_win32libdir" ; then
8199 echo "Failed to find a Win32 codecs dir at $_win32libdir!"
8200 else
8201 echo "Failed to find a Win32 codecs directory! (default: /usr/local/lib/codecs/)"
8203 cat << EOF
8204 Create it and copy the DLL files there! You can download the codecs from our
8205 homepage at http://www.mplayerhq.hu/MPlayer/releases/codecs/
8209 else
8210 cat <<EOF
8211 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
8212 operating system ($system_name). You may encounter a few files that cannot
8213 be played due to missing open source video/audio codec support.
8219 cat <<EOF
8221 Check $TMPLOG if you wonder why an autodetection failed (check whether
8222 the development headers/packages are installed).
8223 Do not report compilation errors if you used any of the --enable-* options
8224 (except --enable-gui and maybe --enable-debug).
8226 If you suspect a bug, please read DOCS/HTML/$_doc_lang/bugreports.html.
8230 if test "$_vidix" = no ; then
8231 cat <<EOF
8232 You've disabled VIDIX. Although it would be better to PORT it instead.
8233 Have a look at the documentation for supported cards!
8238 if test "$_warn_CFLAGS" = yes; then
8239 cat <<EOF
8241 MPlayer compilation will use the CFLAGS set by you, but:
8243 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
8245 It is strongly recommended to let MPlayer choose the correct CFLAGS!
8246 To do so, execute 'CFLAGS= ./configure <options>'
8251 # Last move:
8252 rm -f "$TMPO" "$TMPC" "$TMPS" "$TMPCPP"