Mercurial > mplayer.hg
view configure @ 28706:3306a80b516b
Refactor code for upcoming alpha patches.
Patch by C¸«±dric Schieli, cschieli A gmail
author | cehoyos |
---|---|
date | Fri, 27 Feb 2009 20:44:59 +0000 |
parents | 838f5706f17e |
children | 1f76d86e49ae |
line wrap: on
line source
#! /bin/sh # # Original version (C) 2000 Pontscho/fresh!mindworkz # pontscho@makacs.poliod.hu # # History / Contributors: Check the Subversion log. # # Cleanups all over the place (c) 2001 pl # # # This configure script is *not* autoconf-based and has different semantics. # It attempts to autodetect all settings and options where possible. It is # possible to override autodetection with the --enable-option/--disable-option # command line parameters. --enable-option forces the option on skipping # autodetection. Yes, this means that compilation may fail and yes, this is not # how autoconf-based configure scripts behave. # # configure generates a series of configuration files: # - config.h contains #defines that are used in the C code. # - config.mak is included from the Makefiles. # # If you want to add a new check for $feature, here is a simple skeleton: # # echocheck "$feature" # if "$_feature" = auto; then # cat > $TMPC << EOF # #include <feature.h> # int main(void) { return 0; } # EOF # _feature=no # cc_check && _feature=yes # if test "$_feature" = yes ; then # def_feature='#define CONFIG_FEATURE 1' # else # def_feature='#undef CONFIG_FEATURE' # fi # echores "$_feature" # # Furthermore you need to add the variable _feature to the list of default # settings and set it to one of yes/no/auto. Also add appropriate # --enable-feature/--disable-feature command line options. # The results of the check should be written to config.h and config.mak # at the end of this script. The variable names used for this should be # uniform, i.e. if the option is named 'feature': # # _feature : should have a value of yes/no/auto # def_feature : '#define ... 1' or '#undef ...' for conditional compilation # _ld_feature : '-L/path/dir -lfeature' GCC options # ############################################################################# # Prevent locale nonsense from breaking basic text processing utils export LC_ALL=C # Store the configure line that was used _configuration="$*" # Prefer these macros to full length text ! # These macros only return an error code - NO display is done compile_check() { echo >> "$TMPLOG" cat "$1" >> "$TMPLOG" echo >> "$TMPLOG" echo "$_cc $CFLAGS $_inc_extra $_ld_static $_ld_extra $_libs_mplayer $_libs_mencoder -o $TMPEXE $@" >> "$TMPLOG" rm -f "$TMPEXE" $_cc $CFLAGS $_inc_extra $_ld_static $_ld_extra $_libs_mplayer $_libs_mencoder -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1 TMP="$?" echo >> "$TMPLOG" echo >> "$TMPLOG" return "$TMP" } cc_check() { compile_check $TMPC $@ } cxx_check() { compile_check $TMPCPP $@ -lstdc++ } yasm_check() { echo >> "$TMPLOG" cat "$TMPS" >> "$TMPLOG" echo >> "$TMPLOG" echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG" rm -f "$TMPEXE" $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1 TMP="$?" echo >> "$TMPLOG" echo >> "$TMPLOG" return "$TMP" } tmp_run() { "$TMPEXE" >> "$TMPLOG" 2>&1 } # Display error message, flushes tempfile, exit die () { echo echo "Error: $@" >&2 echo >&2 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" echo "Check \"$TMPLOG\" if you do not understand why it failed." exit 1 } # OS test booleans functions issystem() { test "`echo $system_name | tr A-Z a-z`" = "`echo $1 | tr A-Z a-z`" } linux() { issystem "Linux" || issystem "uClinux" ; return "$?" ; } sunos() { issystem "SunOS" ; return "$?" ; } hpux() { issystem "HP-UX" ; return "$?" ; } irix() { issystem "IRIX" ; return "$?" ; } aix() { issystem "AIX" ; return "$?" ; } cygwin() { issystem "CYGWIN" ; return "$?" ; } freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; return "$?" ; } netbsd() { issystem "NetBSD" ; return "$?" ; } bsdos() { issystem "BSD/OS" ; return "$?" ; } openbsd() { issystem "OpenBSD" ; return "$?" ; } dragonfly() { issystem "DragonFly" ; return "$?" ; } qnx() { issystem "QNX" ; return "$?" ; } darwin() { issystem "Darwin" ; return "$?" ; } gnu() { issystem "GNU" ; return "$?" ; } mingw32() { issystem "MINGW32" ; return "$?" ; } morphos() { issystem "MorphOS" ; return "$?" ; } amigaos() { issystem "AmigaOS" ; return "$?" ; } win32() { cygwin || mingw32 ; return "$?" ; } beos() { issystem "BEOS" ; return "$?" ; } os2() { issystem "OS/2" ; return "$?" ; } # arch test boolean functions # x86/x86pc is used by QNX x86_32() { case "$host_arch" in i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;; *) return 1 ;; esac } x86_64() { case "$host_arch" in x86_64|amd64) return 0 ;; *) return 1 ;; esac } x86() { x86_32 || x86_64 } ppc() { case "$host_arch" in ppc|ppc64|powerpc|powerpc64) return 0;; *) return 1;; esac } alpha() { case "$host_arch" in alpha*) return 0;; *) return 1;; esac } arm() { case "$host_arch" in arm) return 0;; *) return 1;; esac } # Use this before starting a check echocheck() { echo "============ Checking for $@ ============" >> "$TMPLOG" echo ${_echo_n} "Checking for $@ ... ${_echo_c}" } # Use this to echo the results of a check echores() { if test "$_res_comment" ; then _res_comment="($_res_comment)" fi echo "Result is: $@ $_res_comment" >> "$TMPLOG" echo "##########################################" >> "$TMPLOG" echo "" >> "$TMPLOG" echo "$@ $_res_comment" _res_comment="" } ############################################################################# # Check how echo works in this /bin/sh case `echo -n` in -n) _echo_n= _echo_c='\c' ;; # SysV echo *) _echo_n='-n ' _echo_c= ;; # BSD echo esac msg_lang_all=`echo help/help_mp-??.h help/help_mp-??_??.h | sed -e "s:help/help_mp-\(..\).h:\1:g" -e "s:help/help_mp-\(.....\).h:\1:g"` man_lang_all=`echo DOCS/man/??/mplayer.1 DOCS/man/??_??/mplayer.1 | sed -e "s:DOCS/man/\(..\)/mplayer.1:\1:g" -e "s:DOCS/man/\(.._..\)/mplayer.1:\1:g"` doc_lang_all=`echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g"` show_help(){ cat << EOF Usage: $0 [OPTIONS]... Configuration: -h, --help display this help and exit Installation directories: --prefix=DIR prefix directory for installation [/usr/local] --bindir=DIR directory for installing binaries [PREFIX/bin] --datadir=DIR directory for installing machine independent data files (skins, etc) [PREFIX/share/mplayer] --mandir=DIR directory for installing man pages [PREFIX/share/man] --confdir=DIR directory for installing configuration files [PREFIX/etc/mplayer] --libdir=DIR directory for object code libraries [PREFIX/lib] --codecsdir=DIR directory for binary codecs [LIBDIR/codecs] --win32codecsdir=DIR directory for Windows DLLs [LIBDIR/codecs] --xanimcodecsdir=DIR directory for XAnim codecs [LIBDIR/codecs] --realcodecsdir=DIR directory for RealPlayer codecs [LIBDIR/codecs] Optional features: --disable-mencoder disable MEncoder (A/V encoder) compilation [enable] --disable-mplayer disable MPlayer compilation [enable] --enable-gui enable GMPlayer compilation (GTK+ GUI) [disable] --enable-gtk1 force using GTK 1.2 for the GUI [disable] --disable-largefiles disable support for files > 2GB [enable] --enable-linux-devfs set default devices to devfs [disable] --enable-termcap use termcap database for key codes [autodetect] --enable-termios use termios database for key codes [autodetect] --disable-iconv disable iconv for encoding conversion [autodetect] --disable-langinfo do not use langinfo [autodetect] --enable-lirc enable LIRC (remote control) support [autodetect] --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect] --enable-joystick enable joystick support [disable] --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect] --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect] --disable-vm disable X video mode extensions [autodetect] --disable-xf86keysym disable support for multimedia keys [autodetect] --enable-radio enable radio interface [disable] --enable-radio-capture enable radio capture (through PCI/line-in) [disable] --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect] --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect] --disable-tv disable TV interface (TV/DVB grabbers) [enable] --disable-tv-v4l1 disable Video4Linux TV interface [autodetect] --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect] --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect] --disable-tv-teletext disable TV teletext interface [autodetect] --disable-pvr disable Video4Linux2 MPEG PVR [autodetect] --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect] --disable-network disable networking [enable] --enable-winsock2_h enable winsock2_h [autodetect] --enable-smb enable Samba (SMB) input [autodetect] --enable-live enable LIVE555 Streaming Media [autodetect] --enable-nemesi enable Nemesi Streaming Media [autodetect] --disable-dvdnav disable libdvdnav [autodetect] --disable-dvdread disable libdvdread [autodetect] --disable-dvdread-internal disable internal libdvdread [autodetect] --disable-libdvdcss-internal disable internal libdvdcss [autodetect] --disable-cdparanoia disable cdparanoia [autodetect] --disable-cddb disable cddb [autodetect] --disable-bitmap-font disable bitmap font support [enable] --disable-freetype disable FreeType 2 font rendering [autodetect] --disable-fontconfig disable fontconfig font lookup [autodetect] --disable-unrarexec disable using of UnRAR executable [enabled] --enable-menu enable OSD menu (not DVD menu) [disabled] --disable-sortsub disable subtitle sorting [enabled] --enable-fribidi enable the FriBiDi libs [autodetect] --disable-enca disable ENCA charset oracle library [autodetect] --disable-macosx disable Mac OS X specific features [autodetect] --disable-maemo disable maemo specific features [autodetect] --enable-macosx-finder enable Mac OS X Finder invocation parameter parsing [disabled] --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect] --disable-inet6 disable IPv6 support [autodetect] --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect] --disable-ftp disable FTP support [enabled] --disable-vstream disable TiVo vstream client support [autodetect] --disable-pthreads disable Posix threads support [autodetect] --disable-w32threads disable Win32 threads support [autodetect] --disable-ass disable internal SSA/ASS subtitle support [autodetect] --enable-rpath enable runtime linker path for extra libs [disabled] Codecs: --enable-gif enable GIF support [autodetect] --enable-png enable PNG input/output support [autodetect] --enable-mng enable MNG input support [autodetect] --enable-jpeg enable JPEG input/output support [autodetect] --enable-libcdio enable libcdio support [autodetect] --enable-liblzo enable liblzo support [autodetect] --disable-win32dll disable Win32 DLL support [enabled] --disable-qtx disable QuickTime codecs support [enabled] --disable-xanim disable XAnim codecs support [enabled] --disable-real disable RealPlayer codecs support [enabled] --disable-xvid disable Xvid [autodetect] --disable-xvid-lavc disable Xvid in libavcodec [autodetect] --disable-x264 disable x264 [autodetect] --disable-x264-lavc disable x264 in libavcodec [autodetect] --disable-libdirac-lavc disable Dirac in libavcodec [autodetect] --disable-libschroedinger-lavc disable Dirac in libavcodec (Schroedinger decoder) [autodetect] --disable-libnut disable libnut [autodetect] --disable-libavutil_a disable static libavutil [autodetect] --disable-libavcodec_a disable static libavcodec [autodetect] --disable-libavformat_a disable static libavformat [autodetect] --disable-libpostproc_a disable static libpostproc [autodetect] --disable-libswscale_a disable static libswscale [autodetect] --disable-libavutil_so disable shared libavutil [autodetect] --disable-libavcodec_so disable shared libavcodec [autodetect] --disable-libavformat_so disable shared libavformat [autodetect] --disable-libpostproc_so disable shared libpostproc [autodetect] --disable-libswscale_so disable shared libswscale [autodetect] --disable-libavcodec_mpegaudio_hp disable high precision audio decoding in libavcodec [enabled] --disable-tremor-internal disable internal Tremor [enabled] --enable-tremor-low enable lower accuracy internal Tremor [disabled] --enable-tremor enable external Tremor [autodetect] --disable-libvorbis disable libvorbis support [autodetect] --disable-speex disable Speex support [autodetect] --enable-theora enable OggTheora libraries [autodetect] --enable-faad enable external FAAD2 (AAC) [autodetect] --disable-faad-internal disable internal FAAD2 (AAC) [autodetect] --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled] --disable-faac disable support for FAAC (AAC encoder) [autodetect] --disable-faac-lavc disable support for FAAC in libavcodec [autodetect] --disable-ladspa disable LADSPA plugin support [autodetect] --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect] --disable-mad disable libmad (MPEG audio) support [autodetect] --disable-mp3lame disable LAME MP3 encoding support [autodetect] --disable-mp3lame-lavc disable LAME in libavcodec [autodetect] --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect] --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect] --enable-xmms enable XMMS input plugin support [disabled] --enable-libdca enable libdca support [autodetect] --disable-mp3lib disable builtin mp3lib [autodetect] --disable-liba52 disable liba52 [autodetect] --disable-liba52-internal disable builtin liba52 [autodetect] --disable-libmpeg2 disable builtin libmpeg2 [autodetect] --disable-musepack disable musepack support [autodetect] --disable-libamr_nb disable libamr narrowband [autodetect] --disable-libamr_wb disable libamr wideband [autodetect] --disable-decoder=DECODER disable specified FFmpeg decoder --enable-decoder=DECODER enable specified FFmpeg decoder --disable-encoder=ENCODER disable specified FFmpeg encoder --enable-encoder=ENCODER enable specified FFmpeg encoder --disable-parser=PARSER disable specified FFmpeg parser --enable-parser=PARSER enable specified FFmpeg parser --disable-demuxer=DEMUXER disable specified FFmpeg demuxer --enable-demuxer=DEMUXER enable specified FFmpeg demuxer --disable-muxer=MUXER disable specified FFmpeg muxer --enable-muxer=MUXER enable specified FFmpeg muxer Video output: --disable-vidix disable VIDIX [for x86 *nix] --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in Available: cyberblade,ivtv,mach64,mga,mga_crtc2, nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome --disable-vidix-pcidb disable VIDIX PCI device name database --enable-dhahelper enable VIDIX dhahelper support --enable-svgalib_helper enable VIDIX svgalib_helper support --enable-gl enable OpenGL video output [autodetect] --enable-dga2 enable DGA 2 support [autodetect] --enable-dga1 enable DGA 1 support [autodetect] --enable-vesa enable VESA video output [autodetect] --enable-svga enable SVGAlib video output [autodetect] --enable-sdl enable SDL video output [autodetect] --enable-aa enable AAlib video output [autodetect] --enable-caca enable CACA video output [autodetect] --enable-ggi enable GGI video output [autodetect] --enable-ggiwmh enable GGI libggiwmh extension [autodetect] --enable-direct3d enable Direct3D video output [autodetect] --enable-directx enable DirectX video output [autodetect] --enable-dxr2 enable DXR2 video output [autodetect] --enable-dxr3 enable DXR3/H+ video output [autodetect] --enable-ivtv enable IVTV TV-Out video output [autodetect] --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect] --enable-dvb enable DVB video output [autodetect] --enable-dvbhead enable DVB video output (HEAD version) [autodetect] --enable-mga enable mga_vid video output [autodetect] --enable-xmga enable mga_vid X11 video output [autodetect] --enable-xv enable Xv video output [autodetect] --enable-xvmc enable XvMC acceleration [disable] --enable-vdpau enable VDPAU acceleration [autodetect] --enable-vm enable XF86VidMode support [autodetect] --enable-xinerama enable Xinerama support [autodetect] --enable-x11 enable X11 video output [autodetect] --enable-xshape enable XShape support [autodetect] --disable-xss disable screensaver support via xss [autodetect] --enable-fbdev enable FBDev video output [autodetect] --enable-mlib enable mediaLib video output (Solaris) [disable] --enable-3dfx enable obsolete /dev/3dfx video output [disable] --enable-tdfxfb enable tdfxfb video output [disable] --enable-s3fb enable s3fb (S3 ViRGE) video output [disable] --enable-wii enable Nintendo Wii/GameCube video output [disable] --enable-directfb enable DirectFB video output [autodetect] --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect] --enable-bl enable Blinkenlights video output [disable] --enable-tdfxvid enable tdfx_vid video output [disable] --enable-xvr100 enable SUN XVR-100 video output [autodetect] --disable-tga disable Targa video output [enable] --disable-pnm disable PNM video output [enable] --disable-md5sum disable md5sum video output [enable] --disable-yuv4mpeg disable yuv4mpeg video output [enable] Audio output: --disable-alsa disable ALSA audio output [autodetect] --disable-ossaudio disable OSS audio output [autodetect] --disable-arts disable aRts audio output [autodetect] --disable-esd disable esd audio output [autodetect] --disable-pulse disable Pulseaudio audio output [autodetect] --disable-jack disable JACK audio output [autodetect] --disable-openal disable OpenAL audio output [autodetect] --disable-nas disable NAS audio output [autodetect] --disable-sgiaudio disable SGI audio output [autodetect] --disable-sunaudio disable Sun audio output [autodetect] --disable-win32waveout disable Windows waveout audio output [autodetect] --disable-select disable using select() on the audio device [enable] Miscellaneous options: --enable-runtime-cpudetection enable runtime CPU detection [disable] --enable-cross-compile enable cross-compilation [autodetect] --cc=COMPILER C compiler to build MPlayer [gcc] --host-cc=COMPILER C compiler for tools needed while building [gcc] --as=ASSEMBLER assembler to build MPlayer [as] --nm=NM nm tool to build MPlayer [nm] --yasm=YASM Yasm assembler to build MPlayer [yasm] --ar=AR librarian to build MPlayer [ar] --ranlib=RANLIB ranlib to build MPlayer [ranlib] --windres=WINDRES windres to build MPlayer [windres] --target=PLATFORM target platform (i386-linux, arm-linux, etc) --enable-static build a statically linked binary --charset=charset convert the console messages to this character set --language=list a white space or comma separated list of languages for translated man pages, the first language is used for messages and the GUI (the environment variable \$LINGUAS is also honored) [en] (Available: all $msg_lang_all) --with-install=PATH path to a custom install program Advanced options: --enable-mmx enable MMX [autodetect] --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect] --enable-3dnow enable 3DNow! [autodetect] --enable-3dnowext enable extended 3DNow! [autodetect] --enable-sse enable SSE [autodetect] --enable-sse2 enable SSE2 [autodetect] --enable-ssse3 enable SSSE3 [autodetect] --enable-shm enable shm [autodetect] --enable-altivec enable AltiVec (PowerPC) [autodetect] --enable-armv5te enable DSP extensions (ARM) [autodetect] --enable-armv6 enable ARMv6 (ARM) [autodetect] --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect] --enable-armvfp enable ARM VFP (ARM) [autodetect] --enable-iwmmxt enable iWMMXt (ARM) [autodetect] --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable] --enable-big-endian force byte order to big-endian [autodetect] --enable-debug[=1-3] compile-in debugging information [disable] --enable-profile compile-in profiling information [disable] --disable-sighandler disable sighandler for crashes [enable] --enable-crash-debug enable automatic gdb attach on crash [disable] --enable-dynamic-plugins enable dynamic A/V plugins [disable] Use these options if autodetection fails (Options marked with (*) accept multiple paths separated by ':'): --extra-libs=FLAGS extra linker flags --extra-libs-mplayer=FLAGS extra linker flags for MPlayer --extra-libs-mencoder=FLAGS extra linker flags for MEncoder --with-extraincdir=DIR extra header search paths in DIR (*) --with-extralibdir=DIR extra linker search paths in DIR (*) --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA) --with-freetype-config=PATH path to freetype-config --with-fribidi-config=PATH path to fribidi-config --with-glib-config=PATH path to glib*-config --with-gtk-config=PATH path to gtk*-config --with-sdl-config=PATH path to sdl*-config --with-dvdnav-config=PATH path to dvdnav-config --with-dvdread-config=PATH path to dvdread-config This configure script is NOT autoconf-based, even though its output is similar. It will try to autodetect all configuration options. If you --enable an option it will be forcefully turned on, skipping autodetection. This can break compilation, so you need to know what you are doing. EOF exit 0 } #show_help() # GOTCHA: the variables below defines the default behavior for autodetection # and have - unless stated otherwise - at least 2 states : yes no # If autodetection is available then the third state is: auto _mmx=auto _3dnow=auto _3dnowext=auto _mmxext=auto _sse=auto _sse2=auto _ssse3=auto _cmov=auto _fast_cmov=auto _armv5te=auto _armv6=auto _armv6t2=auto _armvfp=auto _iwmmxt=auto _mtrr=auto _altivec=auto _install=install _ranlib=ranlib _windres=windres _cc=cc _ar=ar test "$CC" && _cc="$CC" _as=auto _nm=auto _yasm=yasm _runtime_cpudetection=no _cross_compile=auto _prefix="/usr/local" _libavutil_a=auto _libavutil_so=auto _libavcodec_a=auto _libamr_nb=auto _libamr_wb=auto _libavdecoders_all=`sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'` _libavdecoders=` echo $_libavdecoders_all | sed -e 's/ LIB[A-Z0-9_]*_DECODER//g' -e s/MPEG4AAC_DECODER//` _libavencoders_all=`sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'` _libavencoders=` echo $_libavencoders_all | sed 's/ LIB[A-Z0-9_]*_ENCODER//g'` _libavparsers_all=`sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'` _libavparsers=$_libavparsers_all _libavbsfs_all=`sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]'` _libavbsfs=$_libavbsfs_all _libavdemuxers_all=`sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'` _libavdemuxers=`echo $_libavdemuxers_all | sed -e 's/ LIB[A-Z0-9_]*_DEMUXER//g' -e s/REDIR_DEMUXER// -e s/RTSP_DEMUXER// -e s/SDP_DEMUXER// -e s/AVISYNTH_DEMUXER// ` _libavmuxers_all=`sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'` _libavmuxers=`echo $_libavmuxers_all | sed -e 's/ LIB[A-Z0-9_]*_MUXER//g' -e s/RTP_MUXER// ` _libavprotocols_all=`sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]'` _libavcodec_so=auto _libavformat_a=auto _libavformat_so=auto _libpostproc_a=auto _libpostproc_so=auto _libswscale_a=auto _libswscale_so=auto _libavcodec_mpegaudio_hp=yes _mencoder=yes _mplayer=yes _x11=auto _xshape=auto _xss=auto _dga1=auto _dga2=auto _xv=auto _xvmc=no #auto when complete _vdpau=auto _sdl=auto _direct3d=auto _directx=auto _win32waveout=auto _nas=auto _png=auto _mng=auto _jpeg=auto _pnm=yes _md5sum=yes _yuv4mpeg=yes _gif=auto _gl=auto _ggi=auto _ggiwmh=auto _aa=auto _caca=auto _svga=auto _vesa=auto _fbdev=auto _dvb=auto _dvbhead=auto _dxr2=auto _dxr3=auto _ivtv=auto _v4l2=auto _iconv=auto _langinfo=auto _rtc=auto _ossaudio=auto _arts=auto _esd=auto _pulse=auto _jack=auto _openal=auto _libcdio=auto _liblzo=auto _mad=auto _mp3lame=auto _mp3lame_lavc=auto _toolame=auto _twolame=auto _tremor=auto _tremor_internal=yes _tremor_low=no _libvorbis=auto _speex=auto _theora=auto _mp3lib=auto _liba52=auto _liba52_internal=auto _libdca=auto _libmpeg2=auto _faad=auto _faad_internal=auto _faad_fixed=no _faac=auto _faac_lavc=auto _ladspa=auto _xmms=no _dvdnav=auto _dvdnavconfig=dvdnav-config _dvdreadconfig=dvdread-config _dvdread=auto _dvdread_internal=auto _libdvdcss_internal=auto _xanim=auto _real=auto _live=auto _nemesi=auto _native_rtsp=yes _xinerama=auto _mga=auto _xmga=auto _vm=auto _xf86keysym=auto _mlib=no #broken, thus disabled _sgiaudio=auto _sunaudio=auto _alsa=auto _fastmemcpy=yes _unrar_exec=auto _win32dll=auto _select=yes _radio=no _radio_capture=no _radio_v4l=auto _radio_v4l2=auto _radio_bsdbt848=auto _tv=yes _tv_v4l1=auto _tv_v4l2=auto _tv_bsdbt848=auto _tv_dshow=auto _tv_teletext=auto _pvr=auto _network=yes _winsock2_h=auto _smb=auto _vidix=auto _vidix_pcidb=yes _dhahelper=no _svgalib_helper=no _joystick=no _xvid=auto _xvid_lavc=auto _x264=auto _x264_lavc=auto _libdirac_lavc=auto _libschroedinger_lavc=auto _libnut=auto _lirc=auto _lircc=auto _apple_remote=auto _apple_ir=auto _gui=no _gtk1=no _termcap=auto _termios=auto _3dfx=no _s3fb=no _wii=no _tdfxfb=no _tdfxvid=no _xvr100=auto _tga=yes _directfb=auto _zr=auto _bl=no _largefiles=yes #_language=en _shm=auto _linux_devfs=no _charset="UTF-8" _dynamic_plugins=no _crash_debug=no _sighandler=yes _libdv=auto _cdparanoia=auto _cddb=auto _big_endian=auto _bitmap_font=yes _freetype=auto _fontconfig=auto _menu=no _qtx=auto _macosx=auto _maemo=auto _macosx_finder=no _macosx_bundle=auto _sortsub=yes _freetypeconfig='freetype-config' _fribidi=auto _fribidiconfig='fribidi-config' _enca=auto _inet6=auto _gethostbyname2=auto _ftp=yes _musepack=auto _vstream=auto _pthreads=auto _w32threads=auto _ass=auto _rpath=no _asmalign_pot=auto _stream_cache=yes _priority=no def_dos_paths="#define HAVE_DOS_PATHS 0" def_stream_cache="#define CONFIG_STREAM_CACHE 1" def_priority="#undef CONFIG_PRIORITY" def_pthread_cache="#undef PTHREAD_CACHE" _need_shmem=yes for ac_option do case "$ac_option" in --help|-help|-h) show_help ;; --prefix=*) _prefix=`echo $ac_option | cut -d '=' -f 2` ;; --bindir=*) _bindir=`echo $ac_option | cut -d '=' -f 2` ;; --datadir=*) _datadir=`echo $ac_option | cut -d '=' -f 2` ;; --mandir=*) _mandir=`echo $ac_option | cut -d '=' -f 2` ;; --confdir=*) _confdir=`echo $ac_option | cut -d '=' -f 2` ;; --libdir=*) _libdir=`echo $ac_option | cut -d '=' -f 2` ;; --codecsdir=*) _codecsdir=`echo $ac_option | cut -d '=' -f 2` ;; --win32codecsdir=*) _win32codecsdir=`echo $ac_option | cut -d '=' -f 2` ;; --xanimcodecsdir=*) _xanimcodecsdir=`echo $ac_option | cut -d '=' -f 2` ;; --realcodecsdir=*) _realcodecsdir=`echo $ac_option | cut -d '=' -f 2` ;; --with-extraincdir=*) _inc_extra=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'` ;; --with-extralibdir=*) _ld_extra=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'` ;; --with-install=*) _install=`echo $ac_option | cut -d '=' -f 2 ` ;; --with-xvmclib=*) _xvmclib=`echo $ac_option | cut -d '=' -f 2` ;; --with-sdl-config=*) _sdlconfig=`echo $ac_option | cut -d '=' -f 2` ;; --with-freetype-config=*) _freetypeconfig=`echo $ac_option | cut -d '=' -f 2` ;; --with-fribidi-config=*) _fribidiconfig=`echo $ac_option | cut -d '=' -f 2` ;; --with-gtk-config=*) _gtkconfig=`echo $ac_option | cut -d '=' -f 2` ;; --with-glib-config=*) _glibconfig=`echo $ac_option | cut -d '=' -f 2` ;; --with-dvdnav-config=*) _dvdnavconfig=`echo $ac_option | cut -d '=' -f 2` ;; --with-dvdread-config=*) _dvdreadconfig=`echo $ac_option | cut -d '=' -f 2` ;; --extra-libs=*) _extra_libs=`echo $ac_option | cut -d '=' -f 2` ;; --extra-libs-mplayer=*) _libs_mplayer=`echo $ac_option | cut -d '=' -f 2` ;; --extra-libs-mencoder=*) _libs_mencoder=`echo $ac_option | cut -d '=' -f 2` ;; --target=*) _target=`echo $ac_option | cut -d '=' -f 2` ;; --cc=*) _cc=`echo $ac_option | cut -d '=' -f 2` ;; --host-cc=*) _host_cc=`echo $ac_option | cut -d '=' -f 2` ;; --as=*) _as=`echo $ac_option | cut -d '=' -f 2` ;; --nm=*) _nm=`echo $ac_option | cut -d '=' -f 2` ;; --yasm=*) _yasm=`echo $ac_option | cut -d '=' -f 2` ;; --ar=*) _ar=`echo $ac_option | cut -d '=' -f 2` ;; --ranlib=*) _ranlib=`echo $ac_option | cut -d '=' -f 2` ;; --windres=*) _windres=`echo $ac_option | cut -d '=' -f 2` ;; --charset=*) _charset=`echo $ac_option | cut -d '=' -f 2` ;; --language=*) _language=`echo $ac_option | cut -d '=' -f 2` ;; --enable-static) _ld_static='-static' ;; --disable-static) _ld_static='' ;; --enable-profile) _profile='-p' ;; --disable-profile) _profile= ;; --enable-debug) _debug='-g' ;; --enable-debug=*) _debug=`echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2` ;; --disable-debug) _debug= ;; --enable-runtime-cpudetection) _runtime_cpudetection=yes ;; --disable-runtime-cpudetection) _runtime_cpudetection=no ;; --enable-cross-compile) _cross_compile=yes ;; --disable-cross-compile) _cross_compile=no ;; --enable-mencoder) _mencoder=yes ;; --disable-mencoder) _mencoder=no ;; --enable-mplayer) _mplayer=yes ;; --disable-mplayer) _mplayer=no ;; --enable-dynamic-plugins) _dynamic_plugins=yes ;; --disable-dynamic-plugins) _dynamic_plugins=no ;; --enable-x11) _x11=yes ;; --disable-x11) _x11=no ;; --enable-xshape) _xshape=yes ;; --disable-xshape) _xshape=no ;; --enable-xss) _xss=yes ;; --disable-xss) _xss=no ;; --enable-xv) _xv=yes ;; --disable-xv) _xv=no ;; --enable-xvmc) _xvmc=yes ;; --disable-xvmc) _xvmc=no ;; --enable-vdpau) _vdpau=yes ;; --disable-vdpau) _vdpau=no ;; --enable-sdl) _sdl=yes ;; --disable-sdl) _sdl=no ;; --enable-direct3d) _direct3d=yes ;; --disable-direct3d) _direct3d=no ;; --enable-directx) _directx=yes ;; --disable-directx) _directx=no ;; --enable-win32waveout) _win32waveout=yes ;; --disable-win32waveout) _win32waveout=no ;; --enable-nas) _nas=yes ;; --disable-nas) _nas=no ;; --enable-png) _png=yes ;; --disable-png) _png=no ;; --enable-mng) _mng=yes ;; --disable-mng) _mng=no ;; --enable-jpeg) _jpeg=yes ;; --disable-jpeg) _jpeg=no ;; --enable-pnm) _pnm=yes ;; --disable-pnm) _pnm=no ;; --enable-md5sum) _md5sum=yes ;; --disable-md5sum) _md5sum=no ;; --enable-yuv4mpeg) _yuv4mpeg=yes ;; --disable-yuv4mpeg) _yuv4mpeg=no ;; --enable-gif) _gif=yes ;; --disable-gif) _gif=no ;; --enable-gl) _gl=yes ;; --disable-gl) _gl=no ;; --enable-ggi) _ggi=yes ;; --disable-ggi) _ggi=no ;; --enable-ggiwmh) _ggiwmh=yes ;; --disable-ggiwmh) _ggiwmh=no ;; --enable-aa) _aa=yes ;; --disable-aa) _aa=no ;; --enable-caca) _caca=yes ;; --disable-caca) _caca=no ;; --enable-svga) _svga=yes ;; --disable-svga) _svga=no ;; --enable-vesa) _vesa=yes ;; --disable-vesa) _vesa=no ;; --enable-fbdev) _fbdev=yes ;; --disable-fbdev) _fbdev=no ;; --enable-dvb) _dvb=yes ;; --disable-dvb) _dvb=no ;; --enable-dvbhead) _dvbhead=yes ;; --disable-dvbhead) _dvbhead=no ;; --enable-dxr2) _dxr2=yes ;; --disable-dxr2) _dxr2=no ;; --enable-dxr3) _dxr3=yes ;; --disable-dxr3) _dxr3=no ;; --enable-ivtv) _ivtv=yes ;; --disable-ivtv) _ivtv=no ;; --enable-v4l2) _v4l2=yes ;; --disable-v4l2) _v4l2=no ;; --enable-iconv) _iconv=yes ;; --disable-iconv) _iconv=no ;; --enable-langinfo) _langinfo=yes ;; --disable-langinfo) _langinfo=no ;; --enable-rtc) _rtc=yes ;; --disable-rtc) _rtc=no ;; --enable-libdv) _libdv=yes ;; --disable-libdv) _libdv=no ;; --enable-ossaudio) _ossaudio=yes ;; --disable-ossaudio) _ossaudio=no ;; --enable-arts) _arts=yes ;; --disable-arts) _arts=no ;; --enable-esd) _esd=yes ;; --disable-esd) _esd=no ;; --enable-pulse) _pulse=yes ;; --disable-pulse) _pulse=no ;; --enable-jack) _jack=yes ;; --disable-jack) _jack=no ;; --enable-openal) _openal=yes ;; --disable-openal) _openal=no ;; --enable-mad) _mad=yes ;; --disable-mad) _mad=no ;; --enable-mp3lame) _mp3lame=yes ;; --disable-mp3lame) _mp3lame=no ;; --enable-mp3lame-lavc) _mp3lame_lavc=yes ;; --disable-mp3lame-lavc) _mp3lame_lavc=no ;; --enable-toolame) _toolame=yes ;; --disable-toolame) _toolame=no ;; --enable-twolame) _twolame=yes ;; --disable-twolame) _twolame=no ;; --enable-libcdio) _libcdio=yes ;; --disable-libcdio) _libcdio=no ;; --enable-liblzo) _liblzo=yes ;; --disable-liblzo) _liblzo=no ;; --enable-libvorbis) _libvorbis=yes ;; --disable-libvorbis) _libvorbis=no ;; --enable-speex) _speex=yes ;; --disable-speex) _speex=no ;; --enable-tremor) _tremor=yes ;; --disable-tremor) _tremor=no ;; --enable-tremor-internal) _tremor_internal=yes ;; --disable-tremor-internal) _tremor_internal=no ;; --enable-tremor-low) _tremor_low=yes ;; --disable-tremor-low) _tremor_low=no ;; --enable-theora) _theora=yes ;; --disable-theora) _theora=no ;; --enable-mp3lib) _mp3lib=yes ;; --disable-mp3lib) _mp3lib=no ;; --enable-liba52-internal) _liba52_internal=yes ;; --disable-liba52-internal) _liba52_internal=no ;; --enable-liba52) _liba52=yes ;; --disable-liba52) _liba52=no ;; --enable-libdca) _libdca=yes ;; --disable-libdca) _libdca=no ;; --enable-libmpeg2) _libmpeg2=yes ;; --disable-libmpeg2) _libmpeg2=no ;; --enable-musepack) _musepack=yes ;; --disable-musepack) _musepack=no ;; --enable-faad) _faad=yes ;; --disable-faad) _faad=no ;; --enable-faad-internal) _faad_internal=yes ;; --disable-faad-internal) _faad_internal=no ;; --enable-faad-fixed) _faad_fixed=yes ;; --disable-faad-fixed) _faad_fixed=no ;; --enable-faac) _faac=yes ;; --disable-faac) _faac=no ;; --enable-faac-lavc) _faac_lavc=yes ;; --disable-faac-lavc) _faac_lavc=no ;; --enable-ladspa) _ladspa=yes ;; --disable-ladspa) _ladspa=no ;; --enable-xmms) _xmms=yes ;; --disable-xmms) _xmms=no ;; --enable-dvdread) _dvdread=yes ;; --disable-dvdread) _dvdread=no ;; --enable-dvdread-internal) _dvdread_internal=yes ;; --disable-dvdread-internal) _dvdread_internal=no ;; --enable-libdvdcss-internal) _libdvdcss_internal=yes ;; --disable-libdvdcss-internal) _libdvdcss_internal=no ;; --enable-dvdnav) _dvdnav=yes ;; --disable-dvdnav) _dvdnav=no ;; --enable-xanim) _xanim=yes ;; --disable-xanim) _xanim=no ;; --enable-real) _real=yes ;; --disable-real) _real=no ;; --enable-live) _live=yes ;; --disable-live) _live=no ;; --enable-nemesi) _nemesi=yes ;; --disable-nemesi) _nemesi=no ;; --enable-xinerama) _xinerama=yes ;; --disable-xinerama) _xinerama=no ;; --enable-mga) _mga=yes ;; --disable-mga) _mga=no ;; --enable-xmga) _xmga=yes ;; --disable-xmga) _xmga=no ;; --enable-vm) _vm=yes ;; --disable-vm) _vm=no ;; --enable-xf86keysym) _xf86keysym=yes ;; --disable-xf86keysym) _xf86keysym=no ;; --enable-mlib) _mlib=yes ;; --disable-mlib) _mlib=no ;; --enable-sunaudio) _sunaudio=yes ;; --disable-sunaudio) _sunaudio=no ;; --enable-sgiaudio) _sgiaudio=yes ;; --disable-sgiaudio) _sgiaudio=no ;; --enable-alsa) _alsa=yes ;; --disable-alsa) _alsa=no ;; --enable-tv) _tv=yes ;; --disable-tv) _tv=no ;; --enable-tv-bsdbt848) _tv_bsdbt848=yes ;; --disable-tv-bsdbt848) _tv_bsdbt848=no ;; --enable-tv-v4l1) _tv_v4l1=yes ;; --disable-tv-v4l1) _tv_v4l1=no ;; --enable-tv-v4l2) _tv_v4l2=yes ;; --disable-tv-v4l2) _tv_v4l2=no ;; --enable-tv-dshow) _tv_dshow=yes ;; --disable-tv-dshow) _tv_dshow=no ;; --enable-tv-teletext) _tv_teletext=yes ;; --disable-tv-teletext) _tv_teletext=no ;; --enable-radio) _radio=yes ;; --enable-radio-capture) _radio_capture=yes ;; --disable-radio-capture) _radio_capture=no ;; --disable-radio) _radio=no ;; --enable-radio-v4l) _radio_v4l=yes ;; --disable-radio-v4l) _radio_v4l=no ;; --enable-radio-v4l2) _radio_v4l2=yes ;; --disable-radio-v4l2) _radio_v4l2=no ;; --enable-radio-bsdbt848) _radio_bsdbt848=yes ;; --disable-radio-bsdbt848) _radio_bsdbt848=no ;; --enable-pvr) _pvr=yes ;; --disable-pvr) _pvr=no ;; --enable-fastmemcpy) _fastmemcpy=yes ;; --disable-fastmemcpy) _fastmemcpy=no ;; --enable-network) _network=yes ;; --disable-network) _network=no ;; --enable-winsock2_h) _winsock2_h=yes ;; --disable-winsock2_h) _winsock2_h=no ;; --enable-smb) _smb=yes ;; --disable-smb) _smb=no ;; --enable-vidix) _vidix=yes ;; --disable-vidix) _vidix=no ;; --with-vidix-drivers=*) _vidix_drivers=`echo $ac_option | cut -d '=' -f 2` ;; --disable-vidix-pcidb) _vidix_pcidb=no ;; --enable-dhahelper) _dhahelper=yes ;; --disable-dhahelper) _dhahelper=no ;; --enable-svgalib_helper) _svgalib_helper=yes ;; --disable-svgalib_helper) _svgalib_helper=no ;; --enable-joystick) _joystick=yes ;; --disable-joystick) _joystick=no ;; --enable-xvid) _xvid=yes ;; --disable-xvid) _xvid=no ;; --enable-xvid-lavc) _xvid_lavc=yes ;; --disable-xvid-lavc) _xvid_lavc=no ;; --enable-x264) _x264=yes ;; --disable-x264) _x264=no ;; --enable-x264-lavc) _x264_lavc=yes ;; --disable-x264-lavc) _x264_lavc=no ;; --enable-libdirac-lavc) _libdirac_lavc=yes ;; --disable-libdirac-lavc) _libdirac_lavc=no ;; --enable-libschroedinger-lavc) _libschroedinger_lavc=yes ;; --disable-libschroedinger-lavc) _libschroedinger_lavc=no ;; --enable-libnut) _libnut=yes ;; --disable-libnut) _libnut=no ;; --enable-libavutil_a) _libavutil_a=yes ;; --disable-libavutil_a) _libavutil_a=no ;; --enable-libavutil_so) _libavutil_so=yes ;; --disable-libavutil_so) _libavutil_so=no ;; --enable-libavcodec_a) _libavcodec_a=yes ;; --disable-libavcodec_a) _libavcodec_a=no ;; --enable-libavcodec_so) _libavcodec_so=yes ;; --disable-libavcodec_so) _libavcodec_so=no ;; --enable-libamr_nb) _libamr_nb=yes ;; --disable-libamr_nb) _libamr_nb=no ;; --enable-libamr_wb) _libamr_wb=yes ;; --disable-libamr_wb) _libamr_wb=no ;; --enable-decoder=*) _libavdecoders="$_libavdecoders `echo $ac_option | cut -d '=' -f 2`" ;; --disable-decoder=*) _libavdecoders=`echo $_libavdecoders | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;; --enable-encoder=*) _libavencoders="$_libavencoders `echo $ac_option | cut -d '=' -f 2`" ;; --disable-encoder=*) _libavencoders=`echo $_libavencoders | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;; --enable-parser=*) _libavparsers="$_libavparsers `echo $ac_option | cut -d '=' -f 2`" ;; --disable-parser=*) _libavparsers=`echo $_libavparsers | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;; --enable-demuxer=*) _libavdemuxers="$_libavdemuxers `echo $ac_option | cut -d '=' -f 2`" ;; --disable-demuxer=*) _libavdemuxers=`echo $_libavdemuxers | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;; --enable-muxer=*) _libavmuxers="$_libavmuxers `echo $ac_option | cut -d '=' -f 2`" ;; --disable-muxer=*) _libavmuxers=`echo $_libavmuxers | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;; --enable-libavformat_a) _libavformat_a=yes ;; --disable-libavformat_a) _libavformat_a=no ;; --enable-libavformat_so) _libavformat_so=yes ;; --disable-libavformat_so) _libavformat_so=no ;; --enable-libpostproc_a) _libpostproc_a=yes ;; --disable-libpostproc_a) _libpostproc_a=no ;; --enable-libpostproc_so) _libpostproc_so=yes ;; --disable-libpostproc_so) _libpostproc_so=no ;; --enable-libswscale_a) _libswscale_a=yes ;; --disable-libswscale_a) _libswscale_a=no ;; --enable-libswscale_so) _libswscale_so=yes ;; --disable-libswscale_so) _libswscale_so=no ;; --enable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=yes ;; --disable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=no ;; --enable-lirc) _lirc=yes ;; --disable-lirc) _lirc=no ;; --enable-lircc) _lircc=yes ;; --disable-lircc) _lircc=no ;; --enable-apple-remote) _apple_remote=yes ;; --disable-apple-remote) _apple_remote=no ;; --enable-apple-ir) _apple_ir=yes ;; --disable-apple-ir) _apple_ir=no ;; --enable-gui) _gui=yes ;; --disable-gui) _gui=no ;; --enable-gtk1) _gtk1=yes ;; --disable-gtk1) _gtk1=no ;; --enable-termcap) _termcap=yes ;; --disable-termcap) _termcap=no ;; --enable-termios) _termios=yes ;; --disable-termios) _termios=no ;; --enable-3dfx) _3dfx=yes ;; --disable-3dfx) _3dfx=no ;; --enable-s3fb) _s3fb=yes ;; --disable-s3fb) _s3fb=no ;; --enable-wii) _wii=yes ;; --disable-wii) _wii=no ;; --enable-tdfxfb) _tdfxfb=yes ;; --disable-tdfxfb) _tdfxfb=no ;; --disable-tdfxvid) _tdfxvid=no ;; --enable-tdfxvid) _tdfxvid=yes ;; --disable-xvr100) _xvr100=no ;; --enable-xvr100) _xvr100=yes ;; --disable-tga) _tga=no ;; --enable-tga) _tga=yes ;; --enable-directfb) _directfb=yes ;; --disable-directfb) _directfb=no ;; --enable-zr) _zr=yes ;; --disable-zr) _zr=no ;; --enable-bl) _bl=yes ;; --disable-bl) _bl=no ;; --enable-mtrr) _mtrr=yes ;; --disable-mtrr) _mtrr=no ;; --enable-largefiles) _largefiles=yes ;; --disable-largefiles) _largefiles=no ;; --enable-shm) _shm=yes ;; --disable-shm) _shm=no ;; --enable-select) _select=yes ;; --disable-select) _select=no ;; --enable-linux-devfs) _linux_devfs=yes ;; --disable-linux-devfs) _linux_devfs=no ;; --enable-cdparanoia) _cdparanoia=yes ;; --disable-cdparanoia) _cdparanoia=no ;; --enable-cddb) _cddb=yes ;; --disable-cddb) _cddb=no ;; --enable-big-endian) _big_endian=yes ;; --disable-big-endian) _big_endian=no ;; --enable-bitmap-font) _bitmap_font=yes ;; --disable-bitmap-font) _bitmap_font=no ;; --enable-freetype) _freetype=yes ;; --disable-freetype) _freetype=no ;; --enable-fontconfig) _fontconfig=yes ;; --disable-fontconfig) _fontconfig=no ;; --enable-unrarexec) _unrar_exec=yes ;; --disable-unrarexec) _unrar_exec=no ;; --enable-ftp) _ftp=yes ;; --disable-ftp) _ftp=no ;; --enable-vstream) _vstream=yes ;; --disable-vstream) _vstream=no ;; --enable-pthreads) _pthreads=yes ;; --disable-pthreads) _pthreads=no ;; --enable-w32threads) _w32threads=yes ;; --disable-w32threads) _w32threads=no ;; --enable-ass) _ass=yes ;; --disable-ass) _ass=no ;; --enable-rpath) _rpath=yes ;; --disable-rpath) _rpath=no ;; --enable-fribidi) _fribidi=yes ;; --disable-fribidi) _fribidi=no ;; --enable-enca) _enca=yes ;; --disable-enca) _enca=no ;; --enable-inet6) _inet6=yes ;; --disable-inet6) _inet6=no ;; --enable-gethostbyname2) _gethostbyname2=yes ;; --disable-gethostbyname2) _gethostbyname2=no ;; --enable-dga1) _dga1=yes ;; --disable-dga1) _dga1=no ;; --enable-dga2) _dga2=yes ;; --disable-dga2) _dga2=no ;; --enable-menu) _menu=yes ;; --disable-menu) _menu=no ;; --enable-qtx) _qtx=yes ;; --disable-qtx) _qtx=no ;; --enable-macosx) _macosx=yes ;; --disable-macosx) _macosx=no ;; --enable-macosx-finder) _macosx_finder=yes ;; --disable-macosx-finder) _macosx_finder=no ;; --enable-macosx-bundle) _macosx_bundle=yes;; --disable-macosx-bundle) _macosx_bundle=no;; --enable-maemo) _maemo=yes ;; --disable-maemo) _maemo=no ;; --enable-sortsub) _sortsub=yes ;; --disable-sortsub) _sortsub=no ;; --enable-crash-debug) _crash_debug=yes ;; --disable-crash-debug) _crash_debug=no ;; --enable-sighandler) _sighandler=yes ;; --disable-sighandler) _sighandler=no ;; --enable-win32dll) _win32dll=yes ;; --disable-win32dll) _win32dll=no ;; --enable-sse) _sse=yes ;; --disable-sse) _sse=no ;; --enable-sse2) _sse2=yes ;; --disable-sse2) _sse2=no ;; --enable-ssse3) _ssse3=yes ;; --disable-ssse3) _ssse3=no ;; --enable-mmxext) _mmxext=yes ;; --disable-mmxext) _mmxext=no ;; --enable-3dnow) _3dnow=yes ;; --disable-3dnow) _3dnow=no _3dnowext=no ;; --enable-3dnowext) _3dnow=yes _3dnowext=yes ;; --disable-3dnowext) _3dnowext=no ;; --enable-cmov) _cmov=yes ;; --disable-cmov) _cmov=no ;; --enable-fast-cmov) _fast_cmov=yes ;; --disable-fast-cmov) _fast_cmov=no ;; --enable-altivec) _altivec=yes ;; --disable-altivec) _altivec=no ;; --enable-armv5te) _armv5te=yes ;; --disable-armv5te) _armv5te=no ;; --enable-armv6) _armv6=yes ;; --disable-armv6) _armv6=no ;; --enable-armv6t2) _armv6t2=yes ;; --disable-armv6t2) _armv6t2=no ;; --enable-armvfp) _armvfp=yes ;; --disable-armvfp) _armvfp=no ;; --enable-iwmmxt) _iwmmxt=yes ;; --disable-iwmmxt) _iwmmxt=no ;; --enable-mmx) _mmx=yes ;; --disable-mmx) # 3Dnow! and MMX2 require MMX _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;; *) echo "Unknown parameter: $ac_option" exit 1 ;; esac done # Atmos: moved this here, to be correct, if --prefix is specified test -z "$_bindir" && _bindir="$_prefix/bin" test -z "$_datadir" && _datadir="$_prefix/share/mplayer" test -z "$_mandir" && _mandir="$_prefix/share/man" test -z "$_confdir" && _confdir="$_prefix/etc/mplayer" test -z "$_libdir" && _libdir="$_prefix/lib" # Determine our OS name and CPU architecture if test -z "$_target" ; then # OS name system_name=`uname -s 2>&1` case "$system_name" in Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS) ;; IRIX*) system_name=IRIX ;; GNU/kFreeBSD) system_name=FreeBSD ;; HP-UX*) system_name=HP-UX ;; [cC][yY][gG][wW][iI][nN]*) system_name=CYGWIN ;; MINGW32*) system_name=MINGW32 ;; OS/2*) system_name=OS/2 ;; *) system_name="$system_name-UNKNOWN" ;; esac # host's CPU/instruction set host_arch=`uname -p 2>&1` case "$host_arch" in i386|sparc|ppc|alpha|arm|mips|vax) ;; powerpc) # Darwin returns 'powerpc' host_arch=ppc ;; *) # uname -p on Linux returns 'unknown' for the processor type, # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)' # Maybe uname -m (machine hardware name) returns something we # recognize. # x86/x86pc is used by QNX case "`uname -m 2>&1`" in 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 ;; ia64) host_arch=ia64 ;; x86_64|amd64) if [ -n "$($_cc -dumpmachine | sed -n '/^x86_64-/p;/^amd64-/p')" -a \ -z "$(echo $CFLAGS $_cc | grep -- -m32)" ]; then host_arch=x86_64 else host_arch=i386 fi ;; macppc|ppc|ppc64) host_arch=ppc ;; alpha) host_arch=alpha ;; sparc) host_arch=sparc ;; sparc64) host_arch=sparc64 ;; parisc*|hppa*|9000*) host_arch=hppa ;; arm*|zaurus|cats) host_arch=arm ;; sh3|sh4|sh4a) host_arch=sh ;; s390) host_arch=s390 ;; s390x) host_arch=s390x ;; mips*) host_arch=mips ;; vax) host_arch=vax ;; xtensa*) host_arch=xtensa ;; *) host_arch=UNKNOWN ;; esac ;; esac else # if test -z "$_target" system_name=`echo $_target | cut -d '-' -f 2` case "`echo $system_name | tr A-Z a-z`" in linux) system_name=Linux ;; freebsd) system_name=FreeBSD ;; gnu/kfreebsd) system_name=FreeBSD ;; netbsd) system_name=NetBSD ;; bsd/os) system_name=BSD/OS ;; openbsd) system_name=OpenBSD ;; dragonfly) system_name=DragonFly ;; sunos) system_name=SunOS ;; qnx) system_name=QNX ;; morphos) system_name=MorphOS ;; amigaos) system_name=AmigaOS ;; mingw32msvc) system_name=MINGW32 ;; esac # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed host_arch=`echo $_target | cut -d '-' -f 1` if test `echo $host_arch` != "x86_64" ; then host_arch=`echo $host_arch | tr '_' '-'` fi fi echo "Detected operating system: $system_name" echo "Detected host architecture: $host_arch" if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then die "Runtime CPU detection only works for x86, x86-64 and PPC!" fi _inc_extra="-I. $_inc_extra" _timer=timer-linux.c _getch=getch2.c if freebsd ; then _ld_extra="$_ld_extra -L/usr/local/lib" _inc_extra="$_inc_extra -I/usr/local/include" fi if netbsd || dragonfly ; then _ld_extra="$_ld_extra -L/usr/pkg/lib" _inc_extra="$_inc_extra -I/usr/pkg/include" fi if darwin; then _ld_extra="$_ld_extra -L/usr/local/lib" _inc_extra="$_inc_extra -I/usr/local/include" _timer=timer-darwin.c fi if aix ; then _ld_extra="$_ld_extra -lC" fi if irix ; then _ranlib='ar -r' elif linux ; then _ranlib='true' fi if win32 ; then _exesuf=".exe" # -lwinmm is always needed for osdep/timer-win2.c _ld_extra="$_ld_extra -lwinmm" _pe_executable=yes _timer=timer-win2.c _priority=yes def_dos_paths="#define HAVE_DOS_PATHS 1" def_priority="#define CONFIG_PRIORITY 1" fi if mingw32 ; then _getch=getch2-win.c _need_shmem=no fi if amigaos ; then _select=no _sighandler=no _stream_cache=no def_stream_cache="#undef CONFIG_STREAM_CACHE" fi if qnx ; then _ld_extra="$_ld_extra -lph" fi if os2 ; then _exesuf=".exe" _getch=getch2-os2.c _need_shmem=no _priority=yes def_dos_paths="#define HAVE_DOS_PATHS 1" def_priority="#define CONFIG_PRIORITY 1" fi for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do test "$I" && break done TMPLOG="configure.log" TMPC="$I/mplayer-conf-$RANDOM-$$.c" TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp" TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf" TMPH="$I/mplayer-conf-$RANDOM-$$.h" TMPS="$I/mplayer-conf-$RANDOM-$$.S" rm -f "$TMPLOG" echo configuration: $_configuration > "$TMPLOG" echo >> "$TMPLOG" # Check how to call 'head' and 'tail'. Newer versions spit out warnings # if used as 'head -1' instead of 'head -n 1', but older versions don't # know about '-n'. if test "`(echo line1 ; echo line2) | head -1 2>/dev/null`" = "line1" ; then _head() { head -$1 2>/dev/null ; } else _head() { head -n $1 2>/dev/null ; } fi if test "`(echo line1 ; echo line2) | tail -1 2>/dev/null`" = "line2" ; then _tail() { tail -$1 2>/dev/null ; } else _tail() { tail -n $1 2>/dev/null ; } fi # Checking CC version... # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure) if test "`basename $_cc`" = "icc" || test "`basename $_cc`" = "ecc"; then echocheck "$_cc version" cc_vendor=intel cc_name=`$_cc -V 2>&1 | _head 1 | cut -d ',' -f 1` cc_version=`$_cc -V 2>&1 | _head 1 | cut -d ',' -f 2 | cut -d ' ' -f 3` _cc_major=`echo $cc_version | cut -d '.' -f 1` _cc_minor=`echo $cc_version | cut -d '.' -f 2` # TODO verify older icc/ecc compatibility case $cc_version in '') cc_version="v. ?.??, bad" cc_fail=yes ;; 10.1|11.0) cc_version="$cc_version, ok" ;; *) cc_version="$cc_version, bad" cc_fail=yes ;; esac echores "$cc_version" else for _cc in "$_cc" cc gcc ; do cc_name_tmp=`$_cc -v 2>&1 | _tail 1 | cut -d ' ' -f 1` if test "$cc_name_tmp" = "gcc"; then cc_name=$cc_name_tmp echocheck "$_cc version" cc_vendor=gnu cc_version=`$_cc -dumpversion 2>&1` case $cc_version in 2.96*) cc_fail=yes ;; *) _cc_major=`echo $cc_version | cut -d '.' -f 1` _cc_minor=`echo $cc_version | cut -d '.' -f 2` _cc_mini=`echo $cc_version | cut -d '.' -f 3` ;; esac echores "$cc_version" break fi done fi # icc test "$cc_fail" = yes && die "unsupported compiler version" echocheck "host cc" test "$_host_cc" || _host_cc=$_cc echores $_host_cc echocheck "cross compilation" if test $_cross_compile = auto ; then cat > $TMPC << EOF int main(void) { return 0; } EOF _cross_compile=yes cc_check && "$TMPEXE" && _cross_compile=no fi echores $_cross_compile if test $_cross_compile = yes; then tmp_run() { return 0 } fi # --- # now that we know what compiler should be used for compilation, try to find # out which assembler is used by the $_cc compiler if test "$_as" = auto ; then _as=`$_cc -print-prog-name=as` test -z "$_as" && _as=as fi if test "$_nm" = auto ; then _nm=`$_cc -print-prog-name=nm` test -z "$_nm" && _nm=nm fi # XXX: this should be ok.. _cpuinfo="echo" if test "$_runtime_cpudetection" = no ; then # Cygwin has /proc/cpuinfo, but only supports Intel CPUs # FIXME: Remove the cygwin check once AMD CPUs are supported if test -r /proc/cpuinfo && ! cygwin; then # Linux with /proc mounted, extract CPU information from it _cpuinfo="cat /proc/cpuinfo" elif test -r /compat/linux/proc/cpuinfo && ! x86_32 ; then # FreeBSD with Linux emulation /proc mounted, # extract CPU information from it _cpuinfo="cat /compat/linux/proc/cpuinfo" elif darwin && ! x86 ; then # use hostinfo on Darwin _cpuinfo="hostinfo" elif aix; then # use 'lsattr' on AIX _cpuinfo="lsattr -E -l proc0 -a type" elif x86; then # all other OSes try to extract CPU information from a small helper # program cpuinfo instead $_cc -o cpuinfo$_exesuf cpuinfo.c _cpuinfo="./cpuinfo$_exesuf" fi if x86 ; then # gather more CPU information pname=`$_cpuinfo | grep 'model name' | cut -d ':' -f 2 | _head 1` pvendor=`$_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1` pfamily=`$_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1` pmodel=`$_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1` pstepping=`$_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1` exts=`$_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | _head 1` pparam=`echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \ -e s/xmm/sse/ -e s/kni/sse/` for ext in $pparam ; do eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check done # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag. test $_sse = kernel_check && _mmxext=kernel_check echocheck "CPU vendor" echores "$pvendor ($pfamily:$pmodel:$pstepping)" echocheck "CPU type" echores "$pname" fi fi # test "$_runtime_cpudetection" = no if x86 && test "$_runtime_cpudetection" = no ; then extcheck() { if test "$1" = kernel_check ; then echocheck "kernel support of $2" cat > $TMPC <<EOF #include <stdlib.h> #include <signal.h> void catch() { exit(1); } int main(void) { signal(SIGILL, catch); __asm__ volatile ("$3":::"memory"); return 0; } EOF if cc_check && tmp_run ; then eval _$2=yes echores "yes" _optimizing="$_optimizing $2" return 0 else eval _$2=no echores "failed" echo "It seems that your kernel does not correctly support $2." echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!" return 1 fi fi return 0 } extcheck $_mmx "mmx" "emms" extcheck $_mmxext "mmxext" "sfence" extcheck $_3dnow "3dnow" "femms" extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0" extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse" extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2" extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0" extcheck $_cmov "cmov" "cmovb %%eax,%%ebx" echocheck "mtrr support" if test "$_mtrr" = kernel_check ; then _mtrr="yes" _optimizing="$_optimizing mtrr" fi echores "$_mtrr" if test "$_gcc3_ext" != ""; then # if we had to disable sse/sse2 because the active kernel does not # support this instruction set extension, we also have to tell # gcc3 to not generate sse/sse2 instructions for normal C code cat > $TMPC << EOF int main(void) { return 0; } EOF cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext" fi fi def_fast_64bit='#define HAVE_FAST_64BIT 0' _arch_all='X86 X86_32 X86_64 IA64 SPARC ARM AVR32 SH4 PPC ALPHA SGI_MIPS PA_RISC S390 S390X VAX BFIN XTENSA GENERIC' case "$host_arch" in i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) _arch='X86 X86_32' _target_arch_x86="ARCH_X86 = yes" _target_arch="ARCH_X86_32 = yes" def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1' iproc=486 proc=i486 if test "$_runtime_cpudetection" = no ; then case "$pvendor" in AuthenticAMD) case "$pfamily" in 3) proc=i386 iproc=386 ;; 4) proc=i486 iproc=486 ;; 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size. if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then proc=k6-3 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then proc=geode elif test "$pmodel" -ge 8; then proc=k6-2 elif test "$pmodel" -ge 6; then proc=k6 else proc=i586 fi ;; 6) iproc=686 # It's a bit difficult to determine the correct type of Family 6 # AMD CPUs just from their signature. Instead, we check directly # whether it supports SSE. if test "$_sse" = yes; then # gcc treats athlon-xp, athlon-4 and athlon-mp similarly. proc=athlon-xp else # Again, gcc treats athlon and athlon-tbird similarly. proc=athlon fi ;; 15) iproc=686 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be # caught and remedied in the optimization tests below. proc=k8 ;; *) proc=k8 iproc=686 ;; esac ;; GenuineIntel) case "$pfamily" in 3) proc=i386 iproc=386 ;; 4) proc=i486 iproc=486 ;; 5) iproc=586 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then proc=pentium-mmx # 4 is desktop, 8 is mobile else proc=i586 fi ;; 6) iproc=686 if test "$pmodel" -ge 15; then proc=core2 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then proc=pentium-m elif test "$pmodel" -ge 7; then proc=pentium3 elif test "$pmodel" -ge 3; then proc=pentium2 else proc=i686 fi ;; 15) iproc=686 # A nocona in 32-bit mode has no more capabilities than a prescott. if test "$pmodel" -ge 3; then proc=prescott else proc=pentium4 fi test $_fast_cmov = "auto" && _fast_cmov=no ;; *) proc=prescott iproc=686 ;; esac ;; CentaurHauls) case "$pfamily" in 5) iproc=586 if test "$pmodel" -ge 8; then proc=winchip2 elif test "$pmodel" -ge 4; then proc=winchip-c6 else proc=i586 fi ;; 6) iproc=686 if test "$pmodel" -ge 9; then proc=c3-2 else proc=c3 iproc=586 fi ;; *) proc=i686 iproc=i686 ;; esac ;; unknown) case "$pfamily" in 3) proc=i386 iproc=386 ;; 4) proc=i486 iproc=486 ;; *) proc=i586 iproc=586 ;; esac ;; *) proc=i586 iproc=586 ;; esac fi # test "$_runtime_cpudetection" = no # check that gcc supports our CPU, if not, fall back to earlier ones # LGB: check -mcpu and -march swithing step by step with enabling # to fall back till 386. # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then cpuopt=-mtune else cpuopt=-mcpu fi echocheck "GCC & CPU optimization abilities" cat > $TMPC << EOF int main(void) { return 0; } EOF if test "$_runtime_cpudetection" = no ; then cc_check -march=native && proc=native if test "$proc" = "k8"; then cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp fi if test "$proc" = "athlon-xp"; then cc_check -march=$proc $cpuopt=$proc || proc=athlon fi if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then cc_check -march=$proc $cpuopt=$proc || proc=k6 fi if test "$proc" = "k6" || test "$proc" = "c3"; then if ! cc_check -march=$proc $cpuopt=$proc; then if cc_check -march=i586 $cpuopt=i686; then proc=i586-i686 else proc=i586 fi fi fi if test "$proc" = "prescott" ; then cc_check -march=$proc $cpuopt=$proc || proc=pentium4 fi if test "$proc" = "core2" ; then cc_check -march=$proc $cpuopt=$proc || proc=pentium-m fi if test "$proc" = "pentium4" || test "$proc" = "pentium-m" || test "$proc" = "pentium3" || test "$proc" = "pentium2" || test "$proc" = "athlon" || test "$proc" = "c3-2" || test "$proc" = "geode"; then cc_check -march=$proc $cpuopt=$proc || proc=i686 fi if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then cc_check -march=$proc $cpuopt=$proc || proc=i586 fi if test "$proc" = "i586"; then cc_check -march=$proc $cpuopt=$proc || proc=i486 fi if test "$proc" = "i486" ; then cc_check -march=$proc $cpuopt=$proc || proc=i386 fi if test "$proc" = "i386" ; then cc_check -march=$proc $cpuopt=$proc || proc=error fi if test "$proc" = "error" ; then echores "CPU optimization disabled. CPU not recognized or your compiler is too old." _mcpu="" _march="" _optimizing="" elif test "$proc" = "i586-i686"; then _march="-march=i586" _mcpu="$cpuopt=i686" _optimizing="$proc" else _march="-march=$proc" _mcpu="$cpuopt=$proc" _optimizing="$proc" fi else # if test "$_runtime_cpudetection" = no _mcpu="$cpuopt=generic" # at least i486 required, for bswap instruction _march="-march=i486" cc_check $_mcpu || _mcpu="$cpuopt=i686" cc_check $_mcpu || _mcpu="" cc_check $_march $_mcpu || _march="" fi ## Gabucino : --target takes effect here (hopefully...) by overwriting ## autodetected mcpu/march parameters if test "$_target" ; then # TODO: it may be a good idea to check GCC and fall back in all cases if test "$host_arch" = "i586-i686"; then _march="-march=i586" _mcpu="$cpuopt=i686" else _march="-march=$host_arch" _mcpu="$cpuopt=$host_arch" fi proc="$host_arch" case "$proc" in i386) iproc=386 ;; i486) iproc=486 ;; i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;; i686|athlon*|pentium*) iproc=686 ;; *) iproc=586 ;; esac fi if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then _fast_cmov="yes" else _fast_cmov="no" fi echores "$proc" ;; ia64) _arch='IA64' _target_arch='ARCH_IA64 = yes' def_fast_64bit='#define HAVE_FAST_64BIT 1' iproc='ia64' ;; x86_64|amd64) _arch='X86 X86_64' _target_arch='ARCH_X86_64 = yes' _target_arch_x86="ARCH_X86 = yes" def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1' def_fast_64bit='#define HAVE_FAST_64BIT 1' iproc='x86_64' # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then cpuopt=-mtune else cpuopt=-mcpu fi test $_fast_cmov = "auto" && _fast_cmov=yes if test "$_runtime_cpudetection" = no ; then case "$pvendor" in AuthenticAMD) proc=k8;; GenuineIntel) case "$pfamily" in 6) proc=core2;; *) # 64-bit prescotts exist, but as far as GCC is concerned they # have the same capabilities as a nocona. proc=nocona ;; esac ;; *) proc=error;; esac fi # test "$_runtime_cpudetection" = no echocheck "GCC & CPU optimization abilities" cat > $TMPC << EOF int main(void) { return 0; } EOF # This is a stripped-down version of the i386 fallback. if test "$_runtime_cpudetection" = no ; then cc_check -march=native && proc=native # --- AMD processors --- if test "$proc" = "k8"; then cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp fi # This will fail if gcc version < 3.3, which is ok because earlier # versions don't really support 64-bit on amd64. # Is this a valid assumption? -Corey if test "$proc" = "athlon-xp"; then cc_check -march=$proc $cpuopt=$proc || proc=error fi # --- Intel processors --- if test "$proc" = "core2"; then cc_check -march=$proc $cpuopt=$proc || proc=nocona fi if test "$proc" = "nocona"; then cc_check -march=$proc $cpuopt=$proc || proc=pentium4 fi if test "$proc" = "pentium4"; then cc_check -march=$proc $cpuopt=$proc || proc=error fi _march="-march=$proc" _mcpu="$cpuopt=$proc" if test "$proc" = "error" ; then echores "CPU optimization disabled. CPU not recognized or your compiler is too old." _mcpu="" _march="" fi else # if test "$_runtime_cpudetection" = no # x86-64 is an undocumented option, an intersection of k8 and nocona. _march="-march=x86-64" _mcpu="$cpuopt=generic" cc_check $_mcpu || _mcpu="x86-64" cc_check $_mcpu || _mcpu="" cc_check $_march $_mcpu || _march="" fi _optimizing="" echores "$proc" ;; sparc|sparc64) _arch='SPARC' _target_arch='ARCH_SPARC = yes' iproc='sparc' if test "$host_arch" = "sparc64" ; then _vis='yes' proc='ultrasparc' def_fast_64bit='#define HAVE_FAST_64BIT 1' elif sunos ; then echocheck "CPU type" karch=`uname -m` case "`echo $karch`" in sun4) proc=v7 ;; sun4c) proc=v7 ;; sun4d) proc=v8 ;; sun4m) proc=v8 ;; sun4u) proc=ultrasparc _vis='yes' ;; sun4v) proc=v9 ;; *) proc=v8 ;; esac echores "$proc" else proc=v8 fi _mcpu="-mcpu=$proc" _optimizing="$proc" ;; arm|armv4l|armv5tel) _arch='ARM' _target_arch='ARCH_ARM = yes' iproc='arm' ;; avr32) _arch='AVR32' _target_arch='ARCH_AVR32 = yes' def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1' iproc='avr32' ;; sh|sh4) _arch='SH4' _target_arch='ARCH_SH4 = yes' iproc='sh4' ;; ppc|ppc64|powerpc|powerpc64) _arch='PPC' def_dcbzl='#define HAVE_DCBZL 0' _target_arch='ARCH_PPC = yes' def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1' iproc='ppc' if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then def_fast_64bit='#define HAVE_FAST_64BIT 1' fi echocheck "CPU type" case $system_name in Linux) proc=`$_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | _head 1` if test -n "`$_cpuinfo | grep altivec`"; then test $_altivec = auto && _altivec=yes fi ;; Darwin) proc=`$_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//'` if [ `sysctl -n hw.vectorunit` -eq 1 -o \ "`sysctl -n hw.optional.altivec 2> /dev/null`" = "1" ]; then test $_altivec = auto && _altivec=yes fi ;; NetBSD) # only gcc 3.4 works reliably with AltiVec code under NetBSD case $cc_version in 2*|3.0*|3.1*|3.2*|3.3*) ;; *) if [ `sysctl -n machdep.altivec` -eq 1 ]; then test $_altivec = auto && _altivec=yes fi ;; esac ;; AIX) proc=`$_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//'` ;; esac if test "$_altivec" = yes; then echores "$proc altivec" else _altivec=no echores "$proc" fi echocheck "GCC & CPU optimization abilities" if test -n "$proc"; then case "$proc" in 601) _march='-mcpu=601' _mcpu='-mtune=601' ;; 603) _march='-mcpu=603' _mcpu='-mtune=603' ;; 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;; 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;; 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;; 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;; POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;; POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;; POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;; *) ;; esac # gcc 3.1(.1) and up supports 7400 and 7450 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then case "$proc" in 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;; 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;; *) ;; esac fi # gcc 3.2 and up supports 970 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then case "$proc" in 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970' def_dcbzl='#define HAVE_DCBZL 1' ;; *) ;; esac fi # gcc 3.3 and up supports POWER4 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then case "$proc" in POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;; *) ;; esac fi # gcc 3.4 and up supports 440* if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then case "$proc" in 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;; 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;; *) ;; esac fi # gcc 4.0 and up supports POWER5 if test "$_cc_major" -ge "4"; then case "$proc" in POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;; *) ;; esac fi fi if test -n "$_mcpu"; then _optimizing=`echo $_mcpu | cut -c 8-` echores "$_optimizing" else echores "none" fi ;; alpha*) _arch='ALPHA' _target_arch='ARCH_ALPHA = yes' iproc='alpha' echocheck "CPU type" cat > $TMPC << EOF int main(void) { unsigned long ver, mask; __asm__ ("implver %0" : "=r" (ver)); __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1)); printf("%ld-%x\n", ver, ~mask); return 0; } EOF $_cc -o "$TMPEXE" "$TMPC" case `"$TMPEXE"` in 0-0) proc="ev4"; _mvi="0";; 1-0) proc="ev5"; _mvi="0";; 1-1) proc="ev56"; _mvi="0";; 1-101) proc="pca56"; _mvi="1";; 2-303) proc="ev6"; _mvi="1";; 2-307) proc="ev67"; _mvi="1";; 2-1307) proc="ev68"; _mvi="1";; esac echores "$proc" echocheck "GCC & CPU optimization abilities" if test "$proc" = "ev68" ; then cc_check -mcpu=$proc || proc=ev67 fi if test "$proc" = "ev67" ; then cc_check -mcpu=$proc || proc=ev6 fi _mcpu="-mcpu=$proc" echores "$proc" _optimizing="$proc" ;; mips) _arch='SGI_MIPS' _target_arch='ARCH_SGI_MIPS = yes' iproc='sgi-mips' if irix ; then echocheck "CPU type" proc=`hinv -c processor | grep CPU | cut -d " " -f3` case "`echo $proc`" in R3000) _march='-mips1' _mcpu='-mtune=r2000' ;; R4000) _march='-mips3' _mcpu='-mtune=r4000' ;; R4400) _march='-mips3' _mcpu='-mtune=r4400' ;; R4600) _march='-mips3' _mcpu='-mtune=r4600' ;; R5000) _march='-mips4' _mcpu='-mtune=r5000' ;; R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;; esac # gcc < 3.x does not support -mtune. if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then _mcpu='' fi echores "$proc" fi ;; hppa) _arch='PA_RISC' _target_arch='ARCH_PA_RISC = yes' iproc='PA-RISC' ;; s390) _arch='S390' _target_arch='ARCH_S390 = yes' iproc='390' ;; s390x) _arch='S390X' _target_arch='ARCH_S390X = yes' iproc='390x' ;; vax) _arch='VAX' _target_arch='ARCH_VAX = yes' iproc='vax' ;; xtensa) _arch='XTENSA' _target_arch='ARCH_XTENSA = yes' iproc='xtensa' ;; generic) _arch='GENERIC' _target_arch='ARCH_GENERIC = yes' ;; *) echo "The architecture of your CPU ($host_arch) is not supported by this configure script" echo "It seems nobody has ported MPlayer to your OS or CPU type yet." die "unsupported architecture $host_arch" ;; esac # case "$host_arch" in if test "$_runtime_cpudetection" = yes ; then if x86 ; then test "$_cmov" != no && _cmov=yes x86_32 && _cmov=no test "$_mmx" != no && _mmx=yes test "$_3dnow" != no && _3dnow=yes test "$_3dnowext" != no && _3dnowext=yes test "$_mmxext" != no && _mmxext=yes test "$_sse" != no && _sse=yes test "$_sse2" != no && _sse2=yes test "$_ssse3" != no && _ssse3=yes test "$_mtrr" != no && _mtrr=yes fi if ppc; then _altivec=yes fi fi # endian testing echocheck "byte order" if test "$_big_endian" = auto ; then cat > $TMPC <<EOF short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'), (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0}; int main(void) { return (int)ascii_name; } EOF if cc_check ; then if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then _big_endian=yes else _big_endian=no fi else echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}" fi fi if test "$_big_endian" = yes ; then _byte_order='big-endian' def_words_endian='#define WORDS_BIGENDIAN 1' else _byte_order='little-endian' def_words_endian='#undef WORDS_BIGENDIAN' fi echores "$_byte_order" echocheck "extern symbol prefix" cat > $TMPC << EOF int ff_extern; EOF cc_check -c || die "Symbol mangling check failed." sym=$($_nm -P -g $TMPEXE) extern_prefix=${sym%%ff_extern*} def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\"" echores $extern_prefix echocheck "assembler support of -pipe option" cat > $TMPC << EOF int main(void) { return 0; } EOF cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no" echocheck "compiler support of named assembler arguments" _named_asm_args=yes def_named_asm_args="#define NAMED_ASM_ARGS 1" if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \ -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then _named_asm_args=no def_named_asm_args="#undef NAMED_ASM_ARGS" fi echores $_named_asm_args if darwin && test "$cc_vendor" = "gnu" ; then echocheck "GCC support of -mstackrealign" # GCC 4.2 and some earlier Apple versions support this flag on x86. Since # Mac OS X/Intel has an ABI different from Windows this is needed to avoid # crashes when loading Win32 DLLs. Unfortunately some gcc versions create # wrong code with this flag, but this can be worked around by adding # -fno-unit-at-a-time as described in the blog post at # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/ cat > $TMPC << EOF __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; } int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; } EOF cc_check -O4 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign test -z "$cflags_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time \ && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time" test -n "$cflags_stackrealign" && echores "yes" || echores "no" fi # if darwin && test "$cc_vendor" = "gnu" ; then # Checking for CFLAGS _install_strip="-s" if test "$_profile" != "" || test "$_debug" != "" ; then CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile" _install_strip= elif test -z "$CFLAGS" ; then if test "$cc_vendor" = "intel" ; then CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144" elif test "$cc_vendor" != "gnu" ; then CFLAGS="-O2 $_march $_mcpu $_pipe" else CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer" _ld_extra="$_ld_extra -ffast-math" fi else _warn_CFLAGS=yes fi if test -n "$LDFLAGS" ; then _ld_extra="$_ld_extra $LDFLAGS" _warn_CFLAGS=yes elif test "$cc_vendor" = "intel" ; then _ld_extra="$_ld_extra -i-static" fi if test -n "$CPPFLAGS" ; then _inc_extra="$_inc_extra $CPPFLAGS" _warn_CFLAGS=yes fi if x86_32 ; then # Checking assembler (_as) compatibility... # Added workaround for older as that reads from stdin by default - atmos as_version=`echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p'` echocheck "assembler ($_as $as_version)" _pref_as_version='2.9.1' echo 'nop' > $TMPS if test "$_mmx" = yes ; then echo 'emms' >> $TMPS fi if test "$_3dnow" = yes ; then _pref_as_version='2.10.1' echo 'femms' >> $TMPS fi if test "$_3dnowext" = yes ; then _pref_as_version='2.10.1' echo 'pswapd %mm0, %mm0' >> $TMPS fi if test "$_mmxext" = yes ; then _pref_as_version='2.10.1' echo 'movntq %mm0, (%eax)' >> $TMPS fi if test "$_sse" = yes ; then _pref_as_version='2.10.1' echo 'xorps %xmm0, %xmm0' >> $TMPS fi #if test "$_sse2" = yes ; then # _pref_as_version='2.11' # echo 'xorpd %xmm0, %xmm0' >> $TMPS #fi if test "$_cmov" = yes ; then _pref_as_version='2.10.1' echo 'cmovb %eax, %ebx' >> $TMPS fi if test "$_ssse3" = yes ; then _pref_as_version='2.16.92' echo 'pabsd %xmm0, %xmm1' >> $TMPS fi $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes if test "$as_verc_fail" != yes ; then echores "ok" else _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc." echores "failed" die "obsolete binutils version" fi fi #if x86_32 echocheck ".align is a power of two" if test "$_asmalign_pot" = auto ; then _asmalign_pot=no cat > $TMPC << EOF int main(void) { __asm__ (".align 3"); return 0; } EOF cc_check && _asmalign_pot=yes fi if test "$_asmalign_pot" = "yes" ; then def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"' else def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"' fi echores $_asmalign_pot if x86 ; then echocheck "10 assembler operands" ten_operands=no def_ten_operands='#define HAVE_TEN_OPERANDS 0' cat > $TMPC << EOF int main(void) { int x=0; __asm__ volatile( "" :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x) ); return 0; } EOF cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1' echores $ten_operands echocheck "yasm" if test -z "$YASMFLAGS" ; then if darwin ; then x86_64 && objformat="macho64" || objformat="macho" elif win32 ; then objformat="win32" else objformat="elf" fi # currently tested for Linux x86, x86_64 YASMFLAGS="-f $objformat" x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64" case "$objformat" in elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;; macho64) YASMFLAGS="$YASMFLAGS -DPIC -DPREFIX" ;; *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;; esac else _warn_CFLAGS=yes fi echo "pabsw xmm0, xmm0" > $TMPS yasm_check || _yasm="" if test $_yasm ; then test "$_mmx" = "yes" && fft_mmx="yes" def_yasm='#define HAVE_YASM 1' _have_yasm="yes" echores "$_yasm" else def_yasm='#define HAVE_YASM 0' fft_mmx="no" _have_yasm="no" echores "no" fi echocheck "bswap" def_bswap='#define HAVE_BSWAP 0' echo 'bswap %eax' > $TMPS $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no echores "$bswap" fi #if x86 #FIXME: This should happen before the check for CFLAGS.. def_altivec_h='#define HAVE_ALTIVEC_H 0' if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then # check if AltiVec is supported by the compiler, and how to enable it echocheck "GCC AltiVec flags" cat > $TMPC << EOF int main(void) { return 0; } EOF if $(cc_check -maltivec -mabi=altivec) ; then _altivec_gcc_flags="-maltivec -mabi=altivec" # check if <altivec.h> should be included cat > $TMPC << EOF #include <altivec.h> int main(void) { return 0; } EOF if $(cc_check $_altivec_gcc_flags) ; then def_altivec_h='#define HAVE_ALTIVEC_H 1' inc_altivec_h='#include <altivec.h>' else cat > $TMPC << EOF int main(void) { return 0; } EOF if $(cc_check -faltivec) ; then _altivec_gcc_flags="-faltivec" else _altivec=no _altivec_gcc_flags="none, AltiVec disabled" fi fi fi echores "$_altivec_gcc_flags" # check if the compiler supports braces for vector declarations cat > $TMPC << EOF $inc_altivec_h int main(void) { (vector int) {1}; return 0; } EOF cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations." # Disable runtime cpudetection if we cannot generate AltiVec code or # AltiVec is disabled by the user. test "$_runtime_cpudetection" = yes && test "$_altivec" = no \ && _runtime_cpudetection=no # Show that we are optimizing for AltiVec (if enabled and supported). test "$_runtime_cpudetection" = no && test "$_altivec" = yes \ && _optimizing="$_optimizing altivec" # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS. test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags" fi if arm ; then echocheck "ARM pld instruction" cat > $TMPC << EOF int main(void) { __asm__ volatile ("pld [r0]"); return 0; } EOF pld=no cc_check && pld=yes echores "$pld" echocheck "ARMv5TE (Enhanced DSP Extensions)" if test $_armv5te = "auto" ; then cat > $TMPC << EOF int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; } EOF _armv5te=no cc_check && _armv5te=yes fi echores "$_armv5te" echocheck "ARMv6 (SIMD instructions)" if test $_armv6 = "auto" ; then cat > $TMPC << EOF int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; } EOF _armv6=no cc_check && _armv6=yes fi echores "$_armv6" echocheck "ARMv6t2 (SIMD instructions)" if test $_armv6t2 = "auto" ; then cat > $TMPC << EOF int main(void) { __asm__ volatile ("movt r0, #0"); return 0; } EOF _armv6t2=no cc_check && _armv6t2=yes fi echores "$_armv6" echocheck "ARM VFP" if test $_armvfp = "auto" ; then cat > $TMPC << EOF int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; } EOF _armvfp=no cc_check && _armvfp=yes fi echores "$_armvfp" echocheck "iWMMXt (Intel XScale SIMD instructions)" if test $_iwmmxt = "auto" ; then cat > $TMPC << EOF int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; } EOF _iwmmxt=no cc_check && _iwmmxt=yes fi echores "$_iwmmxt" fi _cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP IWMMXT MMI VIS MVI' test "$_altivec" = yes && _cpuexts="ALTIVEC $_cpuexts" test "$_mmx" = yes && _cpuexts="MMX $_cpuexts" test "$_mmxext" = yes && _cpuexts="MMX2 $_cpuexts" test "$_3dnow" = yes && _cpuexts="AMD3DNOW $_cpuexts" test "$_3dnowext" = yes && _cpuexts="AMD3DNOWEXT $_cpuexts" test "$_sse" = yes && _cpuexts="SSE $_cpuexts" test "$_sse2" = yes && _cpuexts="SSE2 $_cpuexts" test "$_ssse3" = yes && _cpuexts="SSSE3 $_cpuexts" test "$_cmov" = yes && _cpuexts="CMOV $_cpuexts" test "$_fast_cmov" = yes && _cpuexts="FAST_CMOV $_cpuexts" test "$pld" = yes && _cpuexts="PLD $_cpuexts" test "$_armv5te" = yes && _cpuexts="ARMV5TE $_cpuexts" test "$_armv6" = yes && _cpuexts="ARMV6 $_cpuexts" test "$_armv6t2" = yes && _cpuexts="ARMV6T2 $_cpuexts" test "$_armvfp" = yes && _cpuexts="ARMVFP $_cpuexts" test "$_iwmmxt" = yes && _cpuexts="IWMMXT $_cpuexts" test "$_vis" = yes && _cpuexts="VIS $_cpuexts" test "$_mvi" = yes && _cpuexts="MVI $_cpuexts" # Checking kernel version... if x86_32 && linux ; then _k_verc_problem=no kernel_version=`uname -r 2>&1` echocheck "$system_name kernel version" case "$kernel_version" in '') kernel_version="?.??"; _k_verc_fail=yes;; [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*) _k_verc_problem=yes;; esac if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then _k_verc_fail=yes fi if test "$_k_verc_fail" ; then echores "$kernel_version, fail" echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!" echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you" echo "experience crashes. MPlayer tries to autodetect if your kernel correctly" echo "supports SSE, but you have been warned! If you are using a kernel older than" echo "2.2.x you must upgrade it to get SSE support!" # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test) else echores "$kernel_version, ok" fi fi ###################### # MAIN TESTS GO HERE # ###################### echocheck "-lposix" cat > $TMPC <<EOF int main(void) { return 0; } EOF if cc_check -lposix ; then _ld_extra="$_ld_extra -lposix" echores "yes" else echores "no" fi echocheck "-lm" cat > $TMPC <<EOF int main(void) { return 0; } EOF if cc_check -lm ; then _ld_lm="-lm" echores "yes" else _ld_lm="" echores "no" fi echocheck "langinfo" if test "$_langinfo" = auto ; then cat > $TMPC <<EOF #include <langinfo.h> int main(void) { nl_langinfo(CODESET); return 0; } EOF _langinfo=no cc_check && _langinfo=yes fi if test "$_langinfo" = yes ; then def_langinfo='#define HAVE_LANGINFO 1' else def_langinfo='#undef HAVE_LANGINFO' fi echores "$_langinfo" echocheck "language" test -z "$_language" && _language=$LINGUAS _language=`echo $_language | tr , " "` if $(echo $_language | grep -q all) ; then doc_lang=en ; doc_langs=$doc_lang_all man_lang=en ; man_langs=$man_lang_all msg_lang=en else for lang in $_language ; do if test -d DOCS/man/$lang ; then tmp_man_langs="$tmp_man_langs $lang" fi if test -d DOCS/xml/$lang ; then tmp_doc_langs="$tmp_doc_langs $lang" fi done man_langs=$tmp_man_langs doc_langs=$tmp_man_langs for lang in $_language ; do if test -f "help/help_mp-${lang}.h" ; then msg_lang=$lang break else echo ${_echo_n} "$lang not found, ${_echo_c}" _language=`echo $_language | sed "s/$lang *//"` fi done fi test -z "$doc_langs" && doc_langs=en test -z "$man_langs" && man_langs=en test -z "$doc_lang" && doc_lang=$(echo $doc_langs | cut -f1 -d" ") test -z "$man_lang" && man_lang=$(echo $man_langs | cut -f1 -d" ") test -z "$msg_lang" && msg_lang=en _mp_help="help/help_mp-${msg_lang}.h" echores "messages: $msg_lang - man pages: $man_langs - documentation: $doc_langs" echocheck "enable sighandler" if test "$_sighandler" = yes ; then def_sighandler='#define CONFIG_SIGHANDLER 1' else def_sighandler='#undef CONFIG_SIGHANDLER' fi echores "$_sighandler" echocheck "runtime cpudetection" if test "$_runtime_cpudetection" = yes ; then _optimizing="Runtime CPU-Detection enabled" def_runtime_cpudetection='#define RUNTIME_CPUDETECT 1' else def_runtime_cpudetection='#undef RUNTIME_CPUDETECT' fi echores "$_runtime_cpudetection" echocheck "restrict keyword" for restrict_keyword in restrict __restrict __restrict__ ; do echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC if cc_check; then def_restrict_keyword=$restrict_keyword break; fi done if [ -n "$def_restrict_keyword" ]; then echores "$def_restrict_keyword" else echores "none" fi # Avoid infinite recursion loop ("#define restrict restrict") if [ "$def_restrict_keyword" != "restrict" ]; then def_restrict_keyword="#define restrict $def_restrict_keyword" else def_restrict_keyword="" fi echocheck "__builtin_expect" # GCC branch prediction hint cat > $TMPC << EOF int foo(int a) { a = __builtin_expect(a, 10); return a == 10 ? 0 : 1; } int main(void) { return foo(10) && foo(0); } EOF _builtin_expect=no cc_check && _builtin_expect=yes if test "$_builtin_expect" = yes ; then def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1' else def_builtin_expect='#undef HAVE_BUILTIN_EXPECT' fi echores "$_builtin_expect" echocheck "kstat" cat > $TMPC << EOF #include <kstat.h> int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; } EOF _kstat=no cc_check -lkstat && _kstat=yes if test "$_kstat" = yes ; then def_kstat="#define HAVE_LIBKSTAT 1" _ld_extra="$_ld_extra -lkstat" else def_kstat="#undef HAVE_LIBKSTAT" fi echores "$_kstat" echocheck "posix4" # required for nanosleep on some systems cat > $TMPC << EOF #include <time.h> int main(void) { (void) nanosleep(0, 0); return 0; } EOF _posix4=no cc_check -lposix4 && _posix4=yes if test "$_posix4" = yes ; then _ld_extra="$_ld_extra -lposix4" fi echores "$_posix4" for func in llrint lrint lrintf round roundf truncf; do echocheck $func cat > $TMPC << EOF #include <math.h> int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; } EOF eval _$func=no cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes if eval test "x\$_$func" = "xyes"; then eval def_$func="\"#define HAVE_`echo $func | tr '[a-z]' '[A-Z]'` 1\"" echores yes else eval def_$func="\"#define HAVE_`echo $func | tr '[a-z]' '[A-Z]'` 0\"" echores no fi done echocheck "mkstemp" cat > $TMPC << EOF #include <stdlib.h> int main(void) { char a; mkstemp(&a); return 0; } EOF _mkstemp=no cc_check && _mkstemp=yes if test "$_mkstemp" = yes ; then def_mkstemp='#define HAVE_MKSTEMP 1' else def_mkstemp='#undef HAVE_MKSTEMP' fi echores "$_mkstemp" echocheck "nanosleep" # also check for nanosleep cat > $TMPC << EOF #include <time.h> int main(void) { (void) nanosleep(0, 0); return 0; } EOF _nanosleep=no cc_check && _nanosleep=yes if test "$_nanosleep" = yes ; then def_nanosleep='#define HAVE_NANOSLEEP 1' else def_nanosleep='#undef HAVE_NANOSLEEP' fi echores "$_nanosleep" echocheck "socklib" # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl): # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind): cat > $TMPC << EOF #include <netdb.h> #include <sys/socket.h> int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; } EOF _socklib=no for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break done if test $_winsock2_h = auto && ! cygwin ; then _winsock2_h=no cat > $TMPC << EOF #include <winsock2.h> int main(void) { (void) gethostbyname(0); return 0; } EOF cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes fi test "$_ld_sock" && _res_comment="using $_ld_sock" echores "$_socklib" if test $_winsock2_h = yes ; then _ld_sock="-lws2_32" def_winsock2_h='#define HAVE_WINSOCK2_H 1' else def_winsock2_h='#define HAVE_WINSOCK2_H 0' fi echocheck "arpa/inet.h" arpa_inet_h=no def_arpa_inet_h='#define HAVE_ARPA_INET_H 0' cat > $TMPC << EOF #include <arpa/inet.h> int main(void) { return 0; } EOF cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1' echores "$arpa_inet_h" echocheck "inet_pton()" def_inet_pton='#define HAVE_INET_PTON 0' inet_pton=no cat > $TMPC << EOF #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> int main(void) { (void) inet_pton(0, 0, 0); return 0; } EOF for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do cc_check $_ld_tmp && inet_pton=yes && break done if test $inet_pton = yes ; then test $_ld_tmp && _res_comment="using $_ld_tmp" def_inet_pton='#define HAVE_INET_PTON 1' fi echores "$inet_pton" echocheck "inet_aton()" def_inet_aton='#define HAVE_INET_ATON 0' inet_aton=no cat > $TMPC << EOF #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> int main(void) { (void) inet_aton(0, 0); return 0; } EOF for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do cc_check $_ld_tmp && inet_aton=yes && break done if test $inet_aton = yes ; then test $_ld_tmp && _res_comment="using $_ld_tmp" def_inet_aton='#define HAVE_INET_ATON 1' fi echores "$inet_aton" echocheck "socklen_t" _socklen_t=no for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do cat > $TMPC << EOF #include <$header> int main(void) { socklen_t v = 0; return v; } EOF cc_check && _socklen_t=yes && break done if test "$_socklen_t" = yes ; then def_socklen_t='#define HAVE_SOCKLEN_T 1' else def_socklen_t='#define HAVE_SOCKLEN_T 0' fi echores "$_socklen_t" echocheck "closesocket()" _closesocket=no cat > $TMPC << EOF #include <winsock2.h> int main(void) { closesocket(~0); return 0; } EOF cc_check $_ld_sock && _closesocket=yes if test "$_closesocket" = yes ; then def_closesocket='#define HAVE_CLOSESOCKET 1' else def_closesocket='#define HAVE_CLOSESOCKET 0' fi echores "$_closesocket" echocheck "network" test $_winsock2_h = no && test $inet_pton = no && test $inet_aton = no && _network=no if test "$_network" = yes ; then def_network='#define CONFIG_NETWORK 1' _ld_extra="$_ld_extra $_ld_sock" _inputmodules="network $_inputmodules" else _noinputmodules="network $_noinputmodules" def_network='#undef CONFIG_NETWORK' _ftp=no fi echores "$_network" echocheck "inet6" if test "$_inet6" = auto ; then cat > $TMPC << EOF #include <sys/types.h> #if !defined(_WIN32) || defined(__CYGWIN__) #include <sys/socket.h> #include <netinet/in.h> #else #include <ws2tcpip.h> #endif int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; } EOF _inet6=no if cc_check $_ld_sock ; then _inet6=yes fi fi if test "$_inet6" = yes ; then def_inet6='#define HAVE_AF_INET6 1' else def_inet6='#undef HAVE_AF_INET6' fi echores "$_inet6" echocheck "gethostbyname2" if test "$_gethostbyname2" = auto ; then cat > $TMPC << EOF #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> int main(void) { gethostbyname2("", AF_INET); return 0; } EOF _gethostbyname2=no if cc_check ; then _gethostbyname2=yes fi fi if test "$_gethostbyname2" = yes ; then def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1' else def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2' fi echores "$_gethostbyname2" echocheck "inttypes.h (required)" cat > $TMPC << EOF #include <inttypes.h> int main(void) { return 0; } EOF _inttypes=no cc_check && _inttypes=yes echores "$_inttypes" if test "$_inttypes" = no ; then echocheck "bitypes.h (inttypes.h predecessor)" cat > $TMPC << EOF #include <sys/bitypes.h> int main(void) { return 0; } EOF cc_check && _inttypes=yes if test "$_inttypes" = yes ; then 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." else die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed." fi fi echocheck "int_fastXY_t in inttypes.h" cat > $TMPC << EOF #include <inttypes.h> int main(void) { volatile int_fast16_t v= 0; return v; } EOF _fast_inttypes=no cc_check && _fast_inttypes=yes if test "$_fast_inttypes" = no ; then def_fast_inttypes=' typedef signed char int_fast8_t; typedef signed int int_fast16_t; typedef signed int int_fast32_t; typedef signed long long int_fast64_t; typedef unsigned char uint_fast8_t; typedef unsigned int uint_fast16_t; typedef unsigned int uint_fast32_t; typedef unsigned long long uint_fast64_t;' fi echores "$_fast_inttypes" echocheck "malloc.h" cat > $TMPC << EOF #include <malloc.h> int main(void) { (void) malloc(0); return 0; } EOF _malloc=no cc_check && _malloc=yes if test "$_malloc" = yes ; then def_malloc_h='#define HAVE_MALLOC_H 1' else def_malloc_h='#define HAVE_MALLOC_H 0' fi # malloc.h emits a warning in FreeBSD and OpenBSD freebsd || openbsd || dragonfly && def_malloc_h='#define HAVE_MALLOC_H 0' echores "$_malloc" echocheck "memalign()" # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ? def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0' cat > $TMPC << EOF #include <malloc.h> int main(void) { (void) memalign(64, sizeof(char)); return 0; } EOF _memalign=no cc_check && _memalign=yes if test "$_memalign" = yes ; then def_memalign='#define HAVE_MEMALIGN 1' else def_memalign='#define HAVE_MEMALIGN 0' def_map_memalign='#define memalign(a,b) malloc(b)' darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1' fi echores "$_memalign" echocheck "posix_memalign()" posix_memalign=no def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0' cat > $TMPC << EOF #define _XOPEN_SOURCE 600 #include <stdlib.h> int main(void) { posix_memalign(NULL, 0, 0); } EOF cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1' echores "$posix_memalign" echocheck "alloca.h" cat > $TMPC << EOF #include <alloca.h> int main(void) { (void) alloca(0); return 0; } EOF _alloca=no cc_check && _alloca=yes if cc_check ; then def_alloca_h='#define HAVE_ALLOCA_H 1' else def_alloca_h='#undef HAVE_ALLOCA_H' fi echores "$_alloca" echocheck "fastmemcpy" if test "$_fastmemcpy" = yes ; then def_fastmemcpy='#define CONFIG_FASTMEMCPY 1' else def_fastmemcpy='#undef CONFIG_FASTMEMCPY' fi echores "$_fastmemcpy" echocheck "mman.h" cat > $TMPC << EOF #include <sys/types.h> #include <sys/mman.h> int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; } EOF _mman=no cc_check && _mman=yes if test "$_mman" = yes ; then def_mman_h='#define HAVE_SYS_MMAN_H 1' else def_mman_h='#undef HAVE_SYS_MMAN_H' os2 && _need_mmap=yes fi echores "$_mman" cat > $TMPC << EOF #include <sys/types.h> #include <sys/mman.h> int main(void) { void *p = MAP_FAILED; return 0; } EOF _mman_has_map_failed=no cc_check && _mman_has_map_failed=yes if test "$_mman_has_map_failed" = yes ; then def_mman_has_map_failed='' else def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)' fi echocheck "dynamic loader" cat > $TMPC << EOF #include <stddef.h> #include <dlfcn.h> int main(void) { dlopen(NULL, 0); dlclose(NULL); dlsym(NULL, NULL); return 0; } EOF _dl=no for _ld_tmp in "" "-ldl" ; do cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break done if test "$_dl" = yes ; then def_dl='#define HAVE_LIBDL 1' else def_dl='#undef HAVE_LIBDL' fi echores "$_dl" echocheck "dynamic a/v plugins support" if test "$_dl" = no ; then _dynamic_plugins=no fi if test "$_dynamic_plugins" = yes ; then def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1' else def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS' fi echores "$_dynamic_plugins" def_threads='#undef HAVE_THREADS' echocheck "pthread" if test "$_pthreads" = auto ; then cat > $TMPC << EOF #include <pthread.h> void* func(void *arg) { return arg; } int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; } EOF _pthreads=no if ! hpux ; then for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do # for crosscompilation, we cannot execute the program, be happy if we can link statically cc_check $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break done fi fi if test "$_pthreads" = yes ; then test $_ld_pthread && _res_comment="using $_ld_pthread" def_pthreads='#define HAVE_PTHREADS 1' def_threads='#define HAVE_THREADS 1' else _res_comment="v4l, v4l2, ao_nas, win32 loader disabled" def_pthreads='#undef HAVE_PTHREADS' _nas=no ; _tv_v4l1=no ; _tv_v4l2=no mingw32 || _win32dll=no fi echores "$_pthreads" if cygwin ; then if test "$_pthreads" = yes ; then def_pthread_cache="#define PTHREAD_CACHE 1" else _stream_cache=no def_stream_cache="#undef CONFIG_STREAM_CACHE" fi fi echocheck "w32threads" if test "$_pthreads" = yes ; then _res_comment="using pthread instead" _w32threads=no fi if test "$_w32threads" = auto ; then _w32threads=no mingw32 && _w32threads=yes fi test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1' echores "$_w32threads" echocheck "rpath" netbsd &&_rpath=yes if test "$_rpath" = yes ; then for I in `echo $_ld_extra | sed 's/-L//g'` ; do tmp="$tmp ` echo $I | sed 's/.*/ -L& -Wl,-R&/'`" done _ld_extra=$tmp fi echores "$_rpath" echocheck "iconv" if test "$_iconv" = auto ; then cat > $TMPC << EOF #include <stdio.h> #include <unistd.h> #include <iconv.h> #define INBUFSIZE 1024 #define OUTBUFSIZE 4096 char inbuffer[INBUFSIZE]; char outbuffer[OUTBUFSIZE]; int main(void) { size_t numread; iconv_t icdsc; char *tocode="UTF-8"; char *fromcode="cp1250"; if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) { while ((numread = read(0, inbuffer, INBUFSIZE))) { char *iptr=inbuffer; char *optr=outbuffer; size_t inleft=numread; size_t outleft=OUTBUFSIZE; if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft) != (size_t)(-1)) { write(1, outbuffer, OUTBUFSIZE - outleft); } } if (iconv_close(icdsc) == -1) ; } return 0; } EOF _iconv=no for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do cc_check $_ld_lm $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" && \ _iconv=yes && break done fi if test "$_iconv" = yes ; then def_iconv='#define CONFIG_ICONV 1' else def_iconv='#undef CONFIG_ICONV' fi echores "$_iconv" echocheck "soundcard.h" _soundcard_h=no def_soundcard_h='#undef HAVE_SOUNDCARD_H' def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H' for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do cat > $TMPC << EOF #include <$_soundcard_header> int main(void) { return 0; } EOF cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break done if test "$_soundcard_h" = yes ; then if test $_soundcard_header = "sys/soundcard.h"; then def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1' else def_soundcard_h='#define HAVE_SOUNDCARD_H 1' fi fi echores "$_soundcard_h" echocheck "sys/dvdio.h" cat > $TMPC << EOF #include <unistd.h> #include <sys/dvdio.h> int main(void) { return 0; } EOF _dvdio=no cc_check && _dvdio=yes if test "$_dvdio" = yes ; then def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1' else def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H' fi echores "$_dvdio" echocheck "sys/cdio.h" cat > $TMPC << EOF #include <unistd.h> #include <sys/cdio.h> int main(void) { return 0; } EOF _cdio=no cc_check && _cdio=yes if test "$_cdio" = yes ; then def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1' else def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H' fi echores "$_cdio" echocheck "linux/cdrom.h" cat > $TMPC << EOF #include <sys/types.h> #include <linux/cdrom.h> int main(void) { return 0; } EOF _cdrom=no cc_check && _cdrom=yes if test "$_cdrom" = yes ; then def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1' else def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H' fi echores "$_cdrom" echocheck "dvd.h" cat > $TMPC << EOF #include <dvd.h> int main(void) { return 0; } EOF _dvd=no cc_check && _dvd=yes if test "$_dvd" = yes ; then def_dvd='#define DVD_STRUCT_IN_DVD_H 1' else def_dvd='#undef DVD_STRUCT_IN_DVD_H' fi echores "$_dvd" if bsdos; then echocheck "BSDI dvd.h" cat > $TMPC << EOF #include <dvd.h> int main(void) { return 0; } EOF _bsdi_dvd=no cc_check && _bsdi_dvd=yes if test "$_bsdi_dvd" = yes ; then def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1' else def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H' fi echores "$_bsdi_dvd" fi #if bsdos if hpux; then # also used by AIX, but AIX does not support VCD and/or libdvdread echocheck "HP-UX SCSI header" cat > $TMPC << EOF #include <sys/scsi.h> int main(void) { return 0; } EOF _hpux_scsi_h=no cc_check && _hpux_scsi_h=yes if test "$_hpux_scsi_h" = yes ; then def_hpux_scsi_h='#define HPUX_SCTL_IO 1' else def_hpux_scsi_h='#undef HPUX_SCTL_IO' fi echores "$_hpux_scsi_h" fi #if hpux if sunos; then echocheck "userspace SCSI headers (Solaris)" cat > $TMPC << EOF #include <unistd.h> #include <stropts.h> #include <sys/scsi/scsi_types.h> #include <sys/scsi/impl/uscsi.h> int main(void) { return 0; } EOF _sol_scsi_h=no cc_check && _sol_scsi_h=yes if test "$_sol_scsi_h" = yes ; then def_sol_scsi_h='#define SOLARIS_USCSI 1' else def_sol_scsi_h='#undef SOLARIS_USCSI' fi echores "$_sol_scsi_h" fi #if sunos echocheck "termcap" if test "$_termcap" = auto ; then cat > $TMPC <<EOF #include <stddef.h> #include <term.h> int main(void) { tgetent(NULL, NULL); return 0; } EOF _termcap=no for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do cc_check $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" \ && _termcap=yes && break done fi if test "$_termcap" = yes ; then def_termcap='#define HAVE_TERMCAP 1' test $_ld_tmp && _res_comment="using $_ld_tmp" else def_termcap='#undef HAVE_TERMCAP' fi echores "$_termcap" echocheck "termios" def_termios='#undef HAVE_TERMIOS' def_termios_h='#undef HAVE_TERMIOS_H' def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H' if test "$_termios" = auto ; then _termios=no for _termios_header in "sys/termios.h" "termios.h"; do cat > $TMPC <<EOF #include <$_termios_header> int main(void) { return 0; } EOF cc_check && _termios=yes && _res_comment="using $_termios_header" && break done fi if test "$_termios" = yes ; then def_termios='#define HAVE_TERMIOS 1' if test "$_termios_header" = "termios.h" ; then def_termios_h='#define HAVE_TERMIOS_H 1' else def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1' fi fi echores "$_termios" echocheck "shm" if test "$_shm" = auto ; then cat > $TMPC << EOF #include <sys/types.h> #include <sys/shm.h> int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; } EOF _shm=no cc_check && _shm=yes fi if test "$_shm" = yes ; then def_shm='#define HAVE_SHM 1' else def_shm='#undef HAVE_SHM' fi echores "$_shm" echocheck "strsep()" cat > $TMPC << EOF #include <string.h> int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; } EOF _strsep=no cc_check && _strsep=yes if test "$_strsep" = yes ; then def_strsep='#define HAVE_STRSEP 1' _need_strsep=no else def_strsep='#undef HAVE_STRSEP' _need_strsep=yes fi echores "$_strsep" echocheck "vsscanf()" cat > $TMPC << EOF #define _ISOC99_SOURCE #include <stdarg.h> #include <stdio.h> int main(void) { vsscanf(0, 0, 0); return 0; } EOF _vsscanf=no cc_check && _vsscanf=yes if test "$_vsscanf" = yes ; then def_vsscanf='#define HAVE_VSSCANF 1' _need_vsscanf=no else def_vsscanf='#undef HAVE_VSSCANF' _need_vsscanf=yes fi echores "$_vsscanf" echocheck "swab()" cat > $TMPC << EOF #define _XOPEN_SOURCE 600 #include <unistd.h> int main(void) { swab(0, 0, 0); return 0; } EOF _swab=no cc_check && _swab=yes if test "$_swab" = yes ; then def_swab='#define HAVE_SWAB 1' _need_swab=no else def_swab='#undef HAVE_SWAB' _need_swab=yes fi echores "$_swab" echocheck "POSIX select()" cat > $TMPC << EOF #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <string.h> #include <sys/time.h> #include <unistd.h> int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; } EOF _posix_select=no def_posix_select='#undef HAVE_POSIX_SELECT' #select() of kLIBC (OS/2) supports socket only ! os2 && cc_check && _posix_select=yes \ && def_posix_select='#define HAVE_POSIX_SELECT 1' echores "$_posix_select" echocheck "audio select()" if test "$_select" = no ; then def_select='#undef HAVE_AUDIO_SELECT' elif test "$_select" = yes ; then def_select='#define HAVE_AUDIO_SELECT 1' fi echores "$_select" echocheck "gettimeofday()" cat > $TMPC << EOF #include <stdio.h> #include <sys/time.h> int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; } EOF _gettimeofday=no cc_check && _gettimeofday=yes if test "$_gettimeofday" = yes ; then def_gettimeofday='#define HAVE_GETTIMEOFDAY 1' _need_gettimeofday=no else def_gettimeofday='#undef HAVE_GETTIMEOFDAY' _need_gettimeofday=yes fi echores "$_gettimeofday" echocheck "glob()" cat > $TMPC << EOF #include <stdio.h> #include <glob.h> int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; } EOF _glob=no cc_check && _glob=yes if test "$_glob" = yes ; then def_glob='#define HAVE_GLOB 1' _need_glob=no else def_glob='#undef HAVE_GLOB' _need_glob=yes fi echores "$_glob" echocheck "setenv()" cat > $TMPC << EOF #include <stdlib.h> int main(void) { setenv("","",0); return 0; } EOF _setenv=no cc_check && _setenv=yes if test "$_setenv" = yes ; then def_setenv='#define HAVE_SETENV 1' _need_setenv=no else def_setenv='#undef HAVE_SETENV' _need_setenv=yes fi echores "$_setenv" if sunos; then echocheck "sysi86()" cat > $TMPC << EOF #include <sys/sysi86.h> int main(void) { sysi86(0); return 0; } EOF _sysi86=no cc_check && _sysi86=yes if test "$_sysi86" = yes ; then def_sysi86='#define HAVE_SYSI86 1' cat > $TMPC << EOF #include <sys/sysi86.h> int main(void) { int sysi86(int, void*); sysi86(0); return 0; } EOF cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1' else def_sysi86='#undef HAVE_SYSI86' fi echores "$_sysi86" fi #if sunos echocheck "sys/sysinfo.h" cat > $TMPC << EOF #include <sys/sysinfo.h> int main(void) { struct sysinfo s_info; sysinfo(&s_info); return 0; } EOF _sys_sysinfo=no cc_check && _sys_sysinfo=yes if test "$_sys_sysinfo" = yes ; then def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1' else def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H' fi echores "$_sys_sysinfo" if darwin; then echocheck "Mac OS X APIs" if test "$_macosx" = auto ; then productName=`/usr/bin/sw_vers -productName` if test "$productName" = "Mac OS X" || test "$productName" = "Mac OS X Server" ; then _macosx=yes else _macosx=no _noaomodules="macosx $_noaomodules" _novomodules="macosx quartz $_novomodules" fi fi if test "$_macosx" = yes ; then cat > $TMPC <<EOF #include <CoreAudio/CoreAudio.h> int main(void) { return 0; } EOF if cc_check -framework CoreAudio; then _ld_extra="$_ld_extra -framework CoreAudio -framework AudioUnit -framework AudioToolbox" _coreaudio=yes def_coreaudio='#define CONFIG_COREAUDIO 1' _aomodules="macosx $_aomodules" else _coreaudio=no def_coreaudio='#undef CONFIG_COREAUDIO' _noaomodules="macosx $_noaomodules" fi cat > $TMPC <<EOF #include <Carbon/Carbon.h> #include <QuickTime/QuickTime.h> int main(void) { EnterMovies(); ExitMovies(); CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false); return 0; } EOF if cc_check -framework Carbon -framework QuickTime; then _ld_extra="$_ld_extra -framework Carbon -framework QuickTime" _quartz=yes def_quartz='#define CONFIG_QUARTZ 1' _vomodules="quartz $_vomodules" def_quicktime='#define CONFIG_QUICKTIME 1' else _quartz=no def_quartz='#undef CONFIG_QUARTZ' _novomodules="quartz $_novomodules" def_quicktime='#undef CONFIG_QUICKTIME' fi cat > $TMPC <<EOF #include <Carbon/Carbon.h> #include <QuartzCore/CoreVideo.h> int main(void) { return 0; } EOF if cc_check -framework Carbon -framework QuartzCore -framework OpenGL; then _vomodules="macosx $_vomodules" _ld_extra="$_ld_extra -framework Cocoa -framework QuartzCore -framework OpenGL" def_corevideo='#define CONFIG_COREVIDEO 1' _corevideo=yes else _novomodules="macosx $_novomodules" def_corevideo='#undef CONFIG_COREVIDEO' _corevideo=no fi fi echores "$_macosx" echocheck "Mac OS X Finder Support" if test "$_macosx_finder" = auto ; then _macosx_finder=$_macosx fi if test "$_macosx_finder" = yes; then def_macosx_finder='#define CONFIG_MACOSX_FINDER 1' _macosx_finder=yes else def_macosx_finder='#undef CONFIG_MACOSX_FINDER' _macosx_finder=no fi echores "$_macosx_finder" echocheck "Mac OS X Bundle file locations" if test "$_macosx_bundle" = auto ; then _macosx_bundle=$_macosx_finder fi if test "$_macosx_bundle" = yes; then def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1' else def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE' _macosx_bundle=no fi echores "$_macosx_bundle" echocheck "Apple Remote" if test "$_apple_remote" = auto ; then _apple_remote=no cat > $TMPC <<EOF #include <stdio.h> #include <IOKit/IOCFPlugIn.h> int main(void) { io_iterator_t hidObjectIterator = (io_iterator_t)NULL; CFMutableDictionaryRef hidMatchDictionary; IOReturn ioReturnValue; // Set up a matching dictionary to search the I/O Registry by class. // name for all HID class devices hidMatchDictionary = IOServiceMatching("AppleIRController"); // Now search I/O Registry for matching devices. ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault, hidMatchDictionary, &hidObjectIterator); // If search is unsuccessful, return nonzero. if (ioReturnValue != kIOReturnSuccess || !IOIteratorIsValid(hidObjectIterator)) { return 1; } return 0; } EOF cc_check -framework IOKit && tmp_run && _apple_remote=yes fi if test "$_apple_remote" = yes ; then def_apple_remote='#define CONFIG_APPLE_REMOTE 1' _ld_extra="$_ld_extra -framework IOKit" else def_apple_remote='#undef CONFIG_APPLE_REMOTE' fi echores "$_apple_remote" fi #if darwin if linux; then echocheck "Apple IR" if test "$_apple_ir" = auto ; then _apple_ir=no cat > $TMPC <<EOF #include <linux/types.h> #include <linux/input.h> int main(void) { struct input_event ev; struct input_id id; return 0; } EOF cc_check && tmp_run && _apple_ir=yes fi if test "$_apple_ir" = yes ; then def_apple_ir='#define CONFIG_APPLE_IR 1' else def_apple_ir='#undef CONFIG_APPLE_IR' fi echores "$_apple_ir" fi #if linux echocheck "pkg-config" _pkg_config=pkg-config if `$_pkg_config --version > /dev/null 2>&1`; then if test "$_ld_static"; then _pkg_config="$_pkg_config --static" fi echores "yes" else _pkg_config=false echores "no" fi echocheck "Samba support (libsmbclient)" if test "$_smb" = yes; then _ld_extra="$_ld_extra -lsmbclient" fi if test "$_smb" = auto; then _smb=no cat > $TMPC << EOF #include <libsmbclient.h> int main(void) { smbc_opendir("smb://"); return 0; } EOF for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do cc_check $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" && \ _smb=yes && break done fi if test "$_smb" = yes; then def_smb="#define CONFIG_LIBSMBCLIENT" _inputmodules="smb $_inputmodules" else def_smb="#undef CONFIG_LIBSMBCLIENT" _noinputmodules="smb $_noinputmodules" fi echores "$_smb" ######### # VIDEO # ######### echocheck "tdfxfb" if test "$_tdfxfb" = yes ; then def_tdfxfb='#define CONFIG_TDFXFB 1' _vomodules="tdfxfb $_vomodules" else def_tdfxfb='#undef CONFIG_TDFXFB' _novomodules="tdfxfb $_novomodules" fi echores "$_tdfxfb" echocheck "s3fb" if test "$_s3fb" = yes ; then def_s3fb='#define CONFIG_S3FB 1' _vomodules="s3fb $_vomodules" else def_s3fb='#undef CONFIG_S3FB' _novomodules="s3fb $_novomodules" fi echores "$_s3fb" echocheck "wii" if test "$_wii" = yes ; then def_wii='#define CONFIG_WII 1' _vomodules="wii $_vomodules" else def_wii='#undef CONFIG_WII' _novomodules="wii $_novomodules" fi echores "$_wii" echocheck "tdfxvid" if test "$_tdfxvid" = yes ; then def_tdfxvid='#define CONFIG_TDFX_VID 1' _vomodules="tdfx_vid $_vomodules" else def_tdfxvid='#undef CONFIG_TDFX_VID' _novomodules="tdfx_vid $_novomodules" fi echores "$_tdfxvid" echocheck "xvr100" if test "$_xvr100" = auto ; then cat > $TMPC << EOF #include <unistd.h> #include <sys/fbio.h> #include <sys/visual_io.h> int main(void) { struct vis_identifier ident; struct fbgattr attr; ioctl(0, VIS_GETIDENTIFIER, &ident); ioctl(0, FBIOGATTR, &attr); return 0; } EOF _xvr100=no cc_check && _xvr100=yes fi if test "$_xvr100" = yes ; then def_xvr100='#define CONFIG_XVR100 1' _vomodules="xvr100 $_vomodules" else def_tdfxvid='#undef CONFIG_XVR100' _novomodules="xvr100 $_novomodules" fi echores "$_xvr100" echocheck "tga" if test "$_tga" = yes ; then def_tga='#define CONFIG_TGA 1' _vomodules="tga $_vomodules" else def_tga='#undef CONFIG_TGA' _novomodules="tga $_novomodules" fi echores "$_tga" echocheck "md5sum support" if test "$_md5sum" = yes; then def_md5sum="#define CONFIG_MD5SUM" _vomodules="md5sum $_vomodules" else def_md5sum="#undef CONFIG_MD5SUM" _novomodules="md5sum $_novomodules" fi echores "$_md5sum" echocheck "yuv4mpeg support" if test "$_yuv4mpeg" = yes; then def_yuv4mpeg="#define CONFIG_YUV4MPEG" _vomodules="yuv4mpeg $_vomodules" else def_yuv4mpeg="#undef CONFIG_YUV4MPEG" _novomodules="yuv4mpeg $_novomodules" fi echores "$_yuv4mpeg" echocheck "bl" if test "$_bl" = yes ; then def_bl='#define CONFIG_BL 1' _vomodules="bl $_vomodules" else def_bl='#undef CONFIG_BL' _novomodules="bl $_novomodules" fi echores "$_bl" echocheck "DirectFB" if test "$_directfb" = auto ; then _directfb=no cat > $TMPC <<EOF #include <directfb.h> int main(void) { IDirectFB *foo; DirectFBInit(0,0); return 0; } EOF for _inc_tmp in "" -I/usr/local/include/directfb \ -I/usr/include/directfb -I/usr/local/include; do cc_check $_inc_tmp -ldirectfb && _directfb=yes && \ _inc_extra="$_inc_extra $_inc_tmp" && break done fi dfb_version() { expr $1 \* 65536 + $2 \* 256 + $3 } if test "$_directfb" = yes; then cat > $TMPC << EOF #include <directfb_version.h> int dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION ; EOF if $_cc -E $TMPC $_inc_extra > "$TMPEXE"; then _directfb_version=`sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()'` _dfb_major=`echo $_directfb_version | cut -d . -f 1` _dfb_minor=`echo $_directfb_version | cut -d . -f 2` _dfb_micro=`echo $_directfb_version | cut -d . -f 3` _dfb_version=`dfb_version $_dfb_major $_dfb_minor $_dfb_micro` if test "$_dfb_version" -ge `dfb_version 0 9 13`; then def_directfb_version="#define DIRECTFBVERSION $_dfb_version" _res_comment="$_directfb_version" test "$_dfb_version" -ge `dfb_version 0 9 15` && _dfbmga=yes else def_directfb_version='#undef DIRECTFBVERSION' _directfb=no _res_comment="version >=0.9.13 required" fi else _directfb=no _res_comment="failed to get version" fi fi echores "$_directfb" if test "$_directfb" = yes ; then def_directfb='#define CONFIG_DIRECTFB 1' _vomodules="directfb $_vomodules" _libs_mplayer="$_libs_mplayer -ldirectfb" else def_directfb='#undef CONFIG_DIRECTFB' _novomodules="directfb $_novomodules" fi if test "$_dfbmga" = yes; then _vomodules="dfbmga $_vomodules" def_dfbmga='#define CONFIG_DFBMGA 1' else _novomodules="dfbmga $_novomodules" def_dfbmga='#undef CONFIG_DFBMGA' fi echocheck "X11 headers presence" _x11_headers="no" _res_comment="check if the dev(el) packages are installed" for I in `echo $_inc_extra | sed s/-I//g` /usr/include ; do if test -f "$I/X11/Xlib.h" ; then _x11_headers="yes" _res_comment="" break fi done if test $_cross_compile = no; then for I in /usr/X11/include /usr/X11R6/include /usr/include/X11R6 /usr/openwin/include ; do if test -f "$I/X11/Xlib.h" ; then _inc_extra="$_inc_extra -I$I" _x11_headers="yes" _res_comment="using $I" break fi done fi echores "$_x11_headers" echocheck "X11" if test "$_x11" = auto && test "$_x11_headers" = yes ; then cat > $TMPC <<EOF #include <X11/Xlib.h> #include <X11/Xutil.h> int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; } EOF for I in "" -L/usr/X11R6/lib -L/usr/lib/X11R6 -L/usr/X11/lib \ -L/usr/lib32 -L/usr/openwin/lib -L/usr/X11R6/lib64 -L/usr/lib ; do if netbsd; then _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R`echo $I | sed s/^-L//`" else _ld_tmp="$I -lXext -lX11 $_ld_pthread" fi cc_check $_ld_tmp && _libs_mplayer="$_libs_mplayer $_ld_tmp" \ && _x11=yes && break done fi if test "$_x11" = yes ; then def_x11='#define CONFIG_X11 1' _vomodules="x11 xover $_vomodules" else _x11=no def_x11='#undef CONFIG_X11' _novomodules="x11 $_novomodules" _res_comment="check if the dev(el) packages are installed" # disable stuff that depends on X _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no fi echores "$_x11" echocheck "Xss screensaver extensions" if test "$_xss" = auto ; then cat > $TMPC << EOF #include <X11/Xlib.h> #include <X11/extensions/scrnsaver.h> int main(void) { XScreenSaverSuspend(NULL, True); return 0; } EOF _xss=no cc_check -lXss && _xss=yes fi if test "$_xss" = yes ; then def_xss='#define CONFIG_XSS 1' _libs_mplayer="$_libs_mplayer -lXss" else def_xss='#undef CONFIG_XSS' fi echores "$_xss" echocheck "DPMS" _xdpms3=no _xdpms4=no if test "$_x11" = yes ; then cat > $TMPC <<EOF #include <X11/Xmd.h> #include <X11/Xlib.h> #include <X11/Xutil.h> #include <X11/Xatom.h> #include <X11/extensions/dpms.h> int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; } EOF cc_check -lXdpms && _xdpms3=yes cat > $TMPC <<EOF #include <X11/Xlib.h> #include <X11/extensions/dpms.h> int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; } EOF cc_check -lXext && _xdpms4=yes fi if test "$_xdpms4" = yes ; then def_xdpms='#define CONFIG_XDPMS 1' _res_comment="using Xdpms 4" echores "yes" elif test "$_xdpms3" = yes ; then def_xdpms='#define CONFIG_XDPMS 1' _libs_mplayer="$_libs_mplayer -lXdpms" _res_comment="using Xdpms 3" echores "yes" else def_xdpms='#undef CONFIG_XDPMS' echores "no" fi echocheck "Xv" if test "$_xv" = auto ; then cat > $TMPC <<EOF #include <X11/Xlib.h> #include <X11/extensions/Xvlib.h> int main(void) { (void) XvGetPortAttribute(0, 0, 0, 0); (void) XvQueryPortAttributes(0, 0, 0); return 0; } EOF _xv=no cc_check -lXv && _xv=yes fi if test "$_xv" = yes ; then def_xv='#define CONFIG_XV 1' _libs_mplayer="$_libs_mplayer -lXv" _vomodules="xv $_vomodules" else def_xv='#undef CONFIG_XV' _novomodules="xv $_novomodules" fi echores "$_xv" echocheck "XvMC" if test "$_xv" = yes && test "$_xvmc" != no ; then _xvmc=no cat > $TMPC <<EOF #include <X11/Xlib.h> #include <X11/extensions/Xvlib.h> #include <X11/extensions/XvMClib.h> int main(void) { (void) XvMCQueryExtension(0,0,0); (void) XvMCCreateContext(0,0,0,0,0,0,0); return 0; } EOF for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break done fi if test "$_xvmc" = yes ; then def_xvmc='#define CONFIG_XVMC 1' _libs_mplayer="$_libs_mplayer -lXvMC -l$_xvmclib" _vomodules="xvmc $_vomodules" _res_comment="using $_xvmclib" else def_xvmc='#define CONFIG_XVMC 0' _novomodules="xvmc $_novomodules" _libavdecoders=`echo $_libavdecoders | sed -e s/MPEG_XVMC_DECODER// ` fi echores "$_xvmc" echocheck "VDPAU" if test "$_vdpau" = auto ; then _vdpau=no if test "$_dl" = yes ; then cat > $TMPC <<EOF #include <vdpau/vdpau_x11.h> int main(void) {return 0;} EOF cc_check && _vdpau=yes fi fi if test "$_vdpau" = yes ; then def_vdpau='#define CONFIG_VDPAU 1' _vomodules="vdpau $_vomodules" else def_vdpau='#define CONFIG_VDPAU 0' _novomodules="vdpau $_novomodules" _libavdecoders=`echo $_libavdecoders | sed -e s/MPEG_VDPAU_DECODER// -e s/MPEG1_VDPAU_DECODER// -e s/H264_VDPAU_DECODER// -e s/WMV3_VDPAU_DECODER// -e s/VC1_VDPAU_DECODER//` fi echores "$_vdpau" echocheck "Xinerama" if test "$_xinerama" = auto ; then cat > $TMPC <<EOF #include <X11/Xlib.h> #include <X11/extensions/Xinerama.h> int main(void) { (void) XineramaIsActive(0); return 0; } EOF _xinerama=no cc_check -lXinerama && _xinerama=yes fi if test "$_xinerama" = yes ; then def_xinerama='#define CONFIG_XINERAMA 1' _libs_mplayer="$_libs_mplayer -lXinerama" else def_xinerama='#undef CONFIG_XINERAMA' fi echores "$_xinerama" # Note: the -lXxf86vm library is the VideoMode extension and though it's not # needed for DGA, AFAIK every distribution packages together with DGA stuffs # named 'X extensions' or something similar. # This check may be useful for future mplayer versions (to change resolution) # If you run into problems, remove '-lXxf86vm'. echocheck "Xxf86vm" if test "$_vm" = auto ; then cat > $TMPC <<EOF #include <X11/Xlib.h> #include <X11/extensions/xf86vmode.h> int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; } EOF _vm=no cc_check -lXxf86vm && _vm=yes fi if test "$_vm" = yes ; then def_vm='#define CONFIG_XF86VM 1' _libs_mplayer="$_libs_mplayer -lXxf86vm" else def_vm='#undef CONFIG_XF86VM' fi echores "$_vm" # Check for the presence of special keycodes, like audio control buttons # that XFree86 might have. Used to be bundled with the xf86vm check, but # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT # have these new keycodes. echocheck "XF86keysym" if test "$_xf86keysym" = auto; then _xf86keysym=no cat > $TMPC <<EOF #include <X11/Xlib.h> #include <X11/XF86keysym.h> int main(void) { return XF86XK_AudioPause; } EOF cc_check && _xf86keysym=yes fi if test "$_xf86keysym" = yes ; then def_xf86keysym='#define CONFIG_XF86XK 1' else def_xf86keysym='#undef CONFIG_XF86XK' fi echores "$_xf86keysym" echocheck "DGA" if test "$_dga2" = auto && test "$_x11" = yes ; then cat > $TMPC << EOF #include <X11/Xlib.h> #include <X11/extensions/xf86dga.h> int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; } EOF _dga2=no cc_check -lXxf86dga && _dga2=yes fi if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then cat > $TMPC << EOF #include <X11/Xlib.h> #include <X11/extensions/xf86dga.h> int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; } EOF _dga1=no cc_check -lXxf86dga -lXxf86vm && _dga1=yes fi _dga=no def_dga='#undef CONFIG_DGA' def_dga1='#undef CONFIG_DGA1' def_dga2='#undef CONFIG_DGA2' if test "$_dga1" = yes ; then _dga=yes def_dga1='#define CONFIG_DGA1 1' _res_comment="using DGA 1.0" elif test "$_dga2" = yes ; then _dga=yes def_dga2='#define CONFIG_DGA2 1' _res_comment="using DGA 2.0" fi if test "$_dga" = yes ; then def_dga='#define CONFIG_DGA 1' _libs_mplayer="$_libs_mplayer -lXxf86dga" _vomodules="dga $_vomodules" else _novomodules="dga $_novomodules" fi echores "$_dga" echocheck "3dfx" if test "$_3dfx" = yes && test "$_dga" = yes ; then def_3dfx='#define CONFIG_3DFX 1' _vomodules="3dfx $_vomodules" else def_3dfx='#undef CONFIG_3DFX' _novomodules="3dfx $_novomodules" fi echores "$_3dfx" echocheck "OpenGL" #Note: this test is run even with --enable-gl since we autodetect linker flags if (test "$_x11" = yes || win32) && test "$_gl" != no ; then cat > $TMPC << EOF #ifdef GL_WIN32 #include <windows.h> #include <GL/gl.h> #else #include <GL/gl.h> #include <X11/Xlib.h> #include <GL/glx.h> #endif int main(void) { #ifdef GL_WIN32 HDC dc; wglCreateContext(dc); #else glXCreateContext(NULL, NULL, NULL, True); #endif glFinish(); return 0; } EOF _gl=no if cc_check -lGL $_ld_lm ; then _gl=yes _libs_mplayer="$_libs_mplayer -lGL $_ld_dl" elif cc_check -lGL $_ld_lm $_ld_pthread ; then _gl=yes _libs_mplayer="$_libs_mplayer -lGL $_ld_pthread $_ld_dl" elif cc_check -DGL_WIN32 -lopengl32 ; then _gl=yes _gl_win32=yes _libs_mplayer="$_libs_mplayer -lopengl32 -lgdi32" fi else _gl=no fi if test "$_gl" = yes ; then def_gl='#define CONFIG_GL 1' if test "$_gl_win32" = yes ; then def_gl_win32='#define GL_WIN32 1' _res_comment="win32 version" fi _vomodules="opengl $_vomodules" else def_gl='#undef CONFIG_GL' def_gl_win32='#undef GL_WIN32' _novomodules="opengl $_novomodules" fi echores "$_gl" echocheck "VIDIX" def_vidix='#undef CONFIG_VIDIX' def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE' _vidix_drv_cyberblade=no def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV' _vidix_drv_ivtv=no def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV' _vidix_drv_ivtv=no def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64' _vidix_drv_mach64=no def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA' _vidix_drv_mga=no def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2' _vidix_drv_mga_crtc2=no def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA' _vidix_drv_nvidia=no def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2' _vidix_drv_pm2=no def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3' _vidix_drv_pm3=no def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON' _vidix_drv_radeon=no def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128' _vidix_drv_rage128=no def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3' _vidix_drv_s3=no def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU' _vidix_drv_sh_veu=no def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS' _vidix_drv_sis=no def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME' _vidix_drv_unichrome=no if test "$_vidix" = auto ; then _vidix=no x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \ && _vidix=yes (ppc || alpha) && linux && _vidix=yes fi echores "$_vidix" if test "$_vidix" = yes ; then def_vidix='#define CONFIG_VIDIX 1' _vomodules="cvidix $_vomodules" test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome" test $_ivtv = "yes" || _vidix_drivers=`echo $_vidix_drivers | sed s/ivtv//` # some vidix drivers are architecture and os specific, discard them elsewhere x86 || _vidix_drivers=`echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//` (test $host_arch = "sh" && linux) || _vidix_drivers=`echo $_vidix_drivers | sed s/sh_veu//` for driver in $_vidix_drivers ; do uc_driver=`echo $driver | tr '[a-z]' '[A-Z]'` eval _vidix_drv_${driver}=yes eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\" done echocheck "VIDIX PCI device name database" echores "$_vidix_pcidb" if test "$_vidix_pcidb" = yes ; then _vidix_pcidb_val=1 else _vidix_pcidb_val=0 fi echocheck "VIDIX dhahelper support" test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER echores "$_dhahelper" echocheck "VIDIX svgalib_helper support" test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER echores "$_svgalib_helper" else _novomodules="cvidix $_novomodules" fi if test "$_vidix" = yes && win32; then winvidix=yes _vomodules="winvidix $_vomodules" _libs_mplayer="$_libs_mplayer -lgdi32" else _novomodules="winvidix $_novomodules" fi if test "$_vidix" = yes && test "$_x11" = yes; then xvidix=yes _vomodules="xvidix $_vomodules" else _novomodules="xvidix $_novomodules" fi echocheck "/dev/mga_vid" if test "$_mga" = auto ; then _mga=no test -c /dev/mga_vid && _mga=yes fi if test "$_mga" = yes ; then def_mga='#define CONFIG_MGA 1' _vomodules="mga $_vomodules" else def_mga='#undef CONFIG_MGA' _novomodules="mga $_novomodules" fi echores "$_mga" echocheck "xmga" if test "$_xmga" = auto ; then _xmga=no test "$_x11" = yes && test "$_mga" = yes && _xmga=yes fi if test "$_xmga" = yes ; then def_xmga='#define CONFIG_XMGA 1' _vomodules="xmga $_vomodules" else def_xmga='#undef CONFIG_XMGA' _novomodules="xmga $_novomodules" fi echores "$_xmga" echocheck "GGI" if test "$_ggi" = auto ; then cat > $TMPC << EOF #include <ggi/ggi.h> int main(void) { ggiInit(); return 0; } EOF _ggi=no cc_check -lggi && _ggi=yes fi if test "$_ggi" = yes ; then def_ggi='#define CONFIG_GGI 1' _libs_mplayer="$_libs_mplayer -lggi" _vomodules="ggi $_vomodules" else def_ggi='#undef CONFIG_GGI' _novomodules="ggi $_novomodules" fi echores "$_ggi" echocheck "GGI extension: libggiwmh" if test "$_ggiwmh" = auto ; then _ggiwmh=no cat > $TMPC << EOF #include <ggi/ggi.h> #include <ggi/wmh.h> int main(void) { ggiInit(); ggiWmhInit(); return 0; } EOF cc_check -lggi -lggiwmh && _ggiwmh=yes fi # needed to get right output on obscure combination # like --disable-ggi --enable-ggiwmh if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then def_ggiwmh='#define CONFIG_GGIWMH 1' _libs_mplayer="$_libs_mplayer -lggiwmh" else _ggiwmh=no def_ggiwmh='#undef CONFIG_GGIWMH' fi echores "$_ggiwmh" echocheck "AA" if test "$_aa" = auto ; then cat > $TMPC << EOF #include <aalib.h> extern struct aa_hardware_params aa_defparams; extern struct aa_renderparams aa_defrenderparams; int main(void) { aa_context *c; aa_renderparams *p; (void) aa_init(0, 0, 0); c = aa_autoinit(&aa_defparams); p = aa_getrenderparams(); aa_autoinitkbd(c,0); return 0; } EOF _aa=no for _ld_tmp in "-laa" ; do cc_check $_ld_tmp && _libs_mplayer="$_libs_mplayer $_ld_tmp" && _aa=yes && break done fi if test "$_aa" = yes ; then def_aa='#define CONFIG_AA 1' if cygwin ; then _libs_mplayer="$_libs_mplayer `aalib-config --libs | cut -d " " -f 2,5,6`" fi _vomodules="aa $_vomodules" else def_aa='#undef CONFIG_AA' _novomodules="aa $_novomodules" fi echores "$_aa" echocheck "CACA" if test "$_caca" = auto ; then _caca=no if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then cat > $TMPC << EOF #include <caca.h> #ifdef CACA_API_VERSION_1 #include <caca0.h> #endif int main(void) { (void) caca_init(); return 0; } EOF cc_check `caca-config --libs` && _caca=yes fi fi if test "$_caca" = yes ; then def_caca='#define CONFIG_CACA 1' _inc_extra="$_inc_extra `caca-config --cflags`" _libs_mplayer="$_libs_mplayer `caca-config --libs`" _vomodules="caca $_vomodules" else def_caca='#undef CONFIG_CACA' _novomodules="caca $_novomodules" fi echores "$_caca" echocheck "SVGAlib" if test "$_svga" = auto ; then cat > $TMPC << EOF #include <vga.h> int main(void) { return 0; } EOF _svga=no cc_check -lvga $_ld_lm && _svga=yes fi if test "$_svga" = yes ; then def_svga='#define CONFIG_SVGALIB 1' _libs_mplayer="$_libs_mplayer -lvga" _vomodules="svga $_vomodules" else def_svga='#undef CONFIG_SVGALIB' _novomodules="svga $_novomodules" fi echores "$_svga" echocheck "FBDev" if test "$_fbdev" = auto ; then _fbdev=no linux && _fbdev=yes fi if test "$_fbdev" = yes ; then def_fbdev='#define CONFIG_FBDEV 1' _vomodules="fbdev $_vomodules" else def_fbdev='#undef CONFIG_FBDEV' _novomodules="fbdev $_novomodules" fi echores "$_fbdev" echocheck "DVB" if test "$_dvb" = auto ; then _dvb=no cat >$TMPC << EOF #include <poll.h> #include <sys/ioctl.h> #include <stdio.h> #include <time.h> #include <unistd.h> #include <ost/dmx.h> #include <ost/frontend.h> #include <ost/sec.h> #include <ost/video.h> #include <ost/audio.h> int main(void) {return 0;} EOF for _inc_tmp in "" "-I/usr/src/DVB/ost/include" ; do cc_check $_inc_tmp && _dvb=yes && \ _inc_extra="$_inc_extra $_inc_tmp" && break done fi echores "$_dvb" if test "$_dvb" = yes ; then def_dvb='#define CONFIG_DVB 1' def_dvbin='#define CONFIG_DVBIN 1' _aomodules="mpegpes(dvb) $_aomodules" _vomodules="mpegpes(dvb) $_vomodules" fi echocheck "DVB HEAD" if test "$_dvbhead" = auto ; then _dvbhead=no cat >$TMPC << EOF #include <poll.h> #include <sys/ioctl.h> #include <stdio.h> #include <time.h> #include <unistd.h> #include <linux/dvb/dmx.h> #include <linux/dvb/frontend.h> #include <linux/dvb/video.h> #include <linux/dvb/audio.h> int main(void) {return 0;} EOF for _inc_tmp in "" "-I/usr/src/DVB/include" ; do cc_check $_inc_tmp && _dvbhead=yes && \ _inc_extra="$_inc_extra $_inc_tmp" && break done fi echores "$_dvbhead" if test "$_dvbhead" = yes ; then def_dvb='#define CONFIG_DVB 1' def_dvb_head='#define CONFIG_DVB_HEAD 1' def_dvbin='#define CONFIG_DVBIN 1' _aomodules="mpegpes(dvb) $_aomodules" _vomodules="mpegpes(dvb) $_vomodules" fi if test "$_dvbhead" = no && test "$_dvb" = no ; then def_dvb='#undef CONFIG_DVB' def_dvb_head='#undef CONFIG_DVB_HEAD' def_dvbin='#undef CONFIG_DVBIN ' _aomodules="mpegpes(file) $_aomodules" _vomodules="mpegpes(file) $_vomodules" fi if test "$_dvb" = yes || test "$_dvbhead" = yes ; then _dvbin=yes _inputmodules="dvb $_inputmodules" else _dvbin=no _noinputmodules="dvb $_noinputmodules" fi echocheck "PNG support" if test "$_png" = auto ; then _png=no if irix ; then # Don't check for -lpng on irix since it has its own libpng # incompatible with the GNU libpng _res_comment="disabled on irix (not GNU libpng)" else cat > $TMPC << EOF #include <png.h> #include <string.h> int main(void) { printf("png.h : %s\n", PNG_LIBPNG_VER_STRING); printf("libpng: %s\n", png_libpng_ver); return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver); } EOF if cc_check -lpng -lz $_ld_lm ; then if tmp_run ; then _png=yes else _res_comment="mismatch of library and header versions" fi fi fi fi echores "$_png" if test "$_png" = yes ; then def_png='#define CONFIG_PNG 1' _ld_extra="$_ld_extra -lpng -lz" _vomodules="png $_vomodules" else def_png='#undef CONFIG_PNG' _novomodules="png $_novomodules" fi echocheck "MNG support" if test "$_mng" = auto ; then _mng=no cat > $TMPC << EOF #include <libmng.h> int main(void) { const char * p_ver = mng_version_text(); return !p_ver || p_ver[0] == 0; } EOF if cc_check -lmng -lz $_ld_lm ; then _mng=yes fi fi echores "$_mng" if test "$_mng" = yes ; then def_mng='#define CONFIG_MNG 1' _ld_extra="$_ld_extra -lmng -lz" else def_mng='#undef CONFIG_MNG' fi echocheck "JPEG support" if test "$_jpeg" = auto ; then _jpeg=no cat > $TMPC << EOF #include <stdio.h> #include <stdlib.h> #include <setjmp.h> #include <string.h> #include <jpeglib.h> int main(void) { return 0; } EOF if cc_check -ljpeg $_ld_lm ; then if tmp_run ; then _jpeg=yes fi fi fi echores "$_jpeg" if test "$_jpeg" = yes ; then def_jpeg='#define CONFIG_JPEG 1' _vomodules="jpeg $_vomodules" _ld_extra="$_ld_extra -ljpeg" else def_jpeg='#undef CONFIG_JPEG' _novomodules="jpeg $_novomodules" fi echocheck "PNM support" if test "$_pnm" = yes; then def_pnm="#define CONFIG_PNM 1" _vomodules="pnm $_vomodules" else def_pnm="#undef CONFIG_PNM" _novomodules="pnm $_novomodules" fi echores "$_pnm" echocheck "GIF support" # This is to appease people who want to force gif support. # If it is forced to yes, then we still do checks to determine # which gif library to use. if test "$_gif" = yes ; then _force_gif=yes _gif=auto fi if test "$_gif" = auto ; then _gif=no cat > $TMPC << EOF #include <gif_lib.h> int main(void) { return 0; } EOF for _ld_gif in "-lungif" "-lgif" ; do cc_check $_ld_gif && tmp_run && _gif=yes && break done fi # If no library was found, and the user wants support forced, # then we force it on with libgif, as this is the safest # assumption IMHO. (libungif & libregif both create symbolic # links to libgif. We also assume that no x11 support is needed, # because if you are forcing this, then you _should_ know what # you are doing. [ Besides, package maintainers should never # have compiled x11 deps into libungif in the first place. ] ) # </rant> # --Joey if test "$_force_gif" = yes && test "$_gif" = no ; then _gif=yes _ld_gif="-lgif" fi if test "$_gif" = yes ; then def_gif='#define CONFIG_GIF 1' _codecmodules="gif $_codecmodules" _vomodules="gif89a $_vomodules" _res_comment="old version, some encoding functions disabled" def_gif_4='#undef CONFIG_GIF_4' _ld_extra="$_ld_extra $_ld_gif" cat > $TMPC << EOF #include <signal.h> #include <gif_lib.h> void catch() { exit(1); } int main(void) { signal(SIGSEGV, catch); // catch segfault printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst); EGifSetGifVersion("89a"); // this will segfault a buggy gif lib. return 0; } EOF if cc_check "$_ld_gif" && tmp_run ; then def_gif_4='#define CONFIG_GIF_4 1' _res_comment="" fi else def_gif='#undef CONFIG_GIF' def_gif_4='#undef CONFIG_GIF_4' _novomodules="gif89a $_novomodules" _nocodecmodules="gif $_nocodecmodules" fi echores "$_gif" case "$_gif" in yes*) echocheck "broken giflib workaround" def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1' cat > $TMPC << EOF #include <gif_lib.h> int main(void) { GifFileType gif; printf("UserData is at address %p\n", gif.UserData); return 0; } EOF if cc_check "$_ld_gif" && tmp_run ; then def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK' echores "disabled" else echores "enabled" fi ;; esac echocheck "VESA support" if test "$_vesa" = auto ; then cat > $TMPC << EOF #include <vbe.h> int main(void) { vbeVersion(); return 0; } EOF _vesa=no cc_check -lvbe -llrmi && _vesa=yes fi if test "$_vesa" = yes ; then def_vesa='#define CONFIG_VESA 1' _libs_mplayer="$_libs_mplayer -lvbe -llrmi" _vomodules="vesa $_vomodules" else def_vesa='#undef CONFIG_VESA' _novomodules="vesa $_novomodules" fi echores "$_vesa" ################# # VIDEO + AUDIO # ################# echocheck "SDL" if test -z "$_sdlconfig" ; then if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then _sdlconfig="sdl-config" elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then _sdlconfig="sdl11-config" else _sdlconfig=false fi fi if test "$_sdl" = auto || test "$_sdl" = yes ; then cat > $TMPC << EOF #include <SDL.h> int main(void) { SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE); return 0; } EOF _sdl=no if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then if cc_check `$_sdlconfig --cflags` `$_sdlconfig --libs` >>"$TMPLOG" 2>&1 ; then _sdlversion=`$_sdlconfig --version | sed 's/[^0-9]//g'` if test "$_sdlversion" -gt 116 ; then if test "$_sdlversion" -lt 121 ; then def_sdlbuggy='#define BUGGY_SDL' else def_sdlbuggy='#undef BUGGY_SDL' fi _sdl=yes fi fi fi fi if test "$_sdl" = yes ; then def_sdl='#define CONFIG_SDL 1' if cygwin ; then _libs_mplayer="$_libs_mplayer `$_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/`" _inc_extra="$_inc_extra `$_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/`" elif mingw32 ; then _libs_mplayer="$_libs_mplayer `$_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//`" _inc_extra="$_inc_extra `$_sdlconfig --cflags | sed s/-Dmain=SDL_main//`" else _libs_mplayer="$_libs_mplayer `$_sdlconfig --libs`" _inc_extra="$_inc_extra `$_sdlconfig --cflags | sed s/-D_GNU_SOURCE=1//`" fi _vomodules="sdl $_vomodules" _aomodules="sdl $_aomodules" _res_comment="using $_sdlconfig" else def_sdl='#undef CONFIG_SDL' _novomodules="sdl $_novomodules" _noaomodules="sdl $_noaomodules" fi echores "$_sdl" if win32; then echocheck "Windows waveout" if test "$_win32waveout" = auto ; then cat > $TMPC << EOF #include <windows.h> #include <mmsystem.h> int main(void) { return 0; } EOF _win32waveout=no cc_check -lwinmm && _win32waveout=yes fi if test "$_win32waveout" = yes ; then def_win32waveout='#define CONFIG_WIN32WAVEOUT 1' _libs_mplayer="$_libs_mplayer -lwinmm" _aomodules="win32 $_aomodules" else def_win32waveout='#undef CONFIG_WIN32WAVEOUT' _noaomodules="win32 $_noaomodules" fi echores "$_win32waveout" echocheck "Direct3D" if test "$_direct3d" = auto ; then cat > $TMPC << EOF #include <windows.h> #include <d3d9.h> int main(void) { return 0; } EOF _direct3d=no cc_check -ld3d9 && _direct3d=yes fi if test "$_direct3d" = yes ; then def_direct3d='#define CONFIG_DIRECT3D 1' _libs_mplayer="$_libs_mplayer -ld3d9" _vomodules="direct3d $_vomodules" else def_direct3d='#undef CONFIG_DIRECT3D' _novomodules="direct3d $_novomodules" fi echores "$_direct3d" echocheck "Directx" if test "$_directx" = auto ; then cat > $TMPC << EOF #include <windows.h> #include <ddraw.h> #include <dsound.h> int main(void) { return 0; } EOF _directx=no cc_check -lgdi32 && _directx=yes fi if test "$_directx" = yes ; then def_directx='#define CONFIG_DIRECTX 1' _libs_mplayer="$_libs_mplayer -lgdi32" _vomodules="directx $_vomodules" _aomodules="dsound $_aomodules" else def_directx='#undef CONFIG_DIRECTX' _novomodules="directx $_novomodules" _noaomodules="dsound $_noaomodules" fi echores "$_directx" fi #if win32; then echocheck "DXR2" if test "$_dxr2" = auto; then _dxr2=no cat > $TMPC << EOF #include <dxr2ioctl.h> int main(void) { return 0; } EOF for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do cc_check $_inc_tmp && _dxr2=yes && \ _inc_extra="$_inc_extra $_inc_tmp" && break done fi if test "$_dxr2" = yes; then def_dxr2='#define CONFIG_DXR2 1' _aomodules="dxr2 $_aomodules" _vomodules="dxr2 $_vomodules" else def_dxr2='#undef CONFIG_DXR2' _noaomodules="dxr2 $_noaomodules" _novomodules="dxr2 $_novomodules" fi echores "$_dxr2" echocheck "DXR3/H+" if test "$_dxr3" = auto ; then cat > $TMPC << EOF #include <linux/em8300.h> int main(void) { return 0; } EOF _dxr3=no cc_check && _dxr3=yes fi if test "$_dxr3" = yes ; then def_dxr3='#define CONFIG_DXR3 1' _vomodules="dxr3 $_vomodules" else def_dxr3='#undef CONFIG_DXR3' _novomodules="dxr3 $_novomodules" fi echores "$_dxr3" echocheck "IVTV TV-Out (pre linux-2.6.24)" if test "$_ivtv" = auto ; then cat > $TMPC << EOF #include <stdlib.h> #include <inttypes.h> #include <linux/types.h> #include <linux/videodev2.h> #include <linux/ivtv.h> #include <sys/ioctl.h> int main(void) { struct ivtv_cfg_stop_decode sd; struct ivtv_cfg_start_decode sd1; ioctl(0, IVTV_IOC_START_DECODE, &sd1); ioctl(0, IVTV_IOC_STOP_DECODE, &sd); return 0; } EOF _ivtv=no cc_check && _ivtv=yes fi if test "$_ivtv" = yes ; then def_ivtv='#define CONFIG_IVTV 1' _vomodules="ivtv $_vomodules" _aomodules="ivtv $_aomodules" else def_ivtv='#undef CONFIG_IVTV' _novomodules="ivtv $_novomodules" _noaomodules="ivtv $_noaomodules" fi echores "$_ivtv" echocheck "V4L2 MPEG Decoder" if test "$_v4l2" = auto ; then cat > $TMPC << EOF #include <stdlib.h> #include <inttypes.h> #include <linux/types.h> #include <linux/videodev2.h> #include <linux/version.h> int main(void) { #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) #error kernel headers too old, need 2.6.22 bad_kernel_version(); #endif struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; return 0; } EOF _v4l2=no cc_check && _v4l2=yes fi if test "$_v4l2" = yes ; then def_v4l2='#define CONFIG_V4L2_DECODER 1' _vomodules="v4l2 $_vomodules" _aomodules="v4l2 $_aomodules" else def_v4l2='#undef CONFIG_V4L2_DECODER' _novomodules="v4l2 $_novomodules" _noaomodules="v4l2 $_noaomodules" fi echores "$_v4l2" ######### # AUDIO # ######### echocheck "OSS Audio" if test "$_ossaudio" = auto ; then cat > $TMPC << EOF #include <sys/ioctl.h> #include <$_soundcard_header> int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; } EOF _ossaudio=no cc_check && _ossaudio=yes fi if test "$_ossaudio" = yes ; then def_ossaudio='#define CONFIG_OSS_AUDIO 1' _aomodules="oss $_aomodules" if test "$_linux_devfs" = yes; then def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"' def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"' else cat > $TMPC << EOF #include <sys/ioctl.h> #include <$_soundcard_header> #ifdef OPEN_SOUND_SYSTEM int main(void) { return 0; } #else #error Not the real thing #endif EOF _real_ossaudio=no cc_check && _real_ossaudio=yes if test "$_real_ossaudio" = yes; then def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"' elif netbsd || openbsd ; then def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"' _ld_extra="$_ld_extra -lossaudio" else def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"' fi def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"' fi else def_ossaudio='#undef CONFIG_OSS_AUDIO' def_ossaudio_devdsp='#define PATH_DEV_DSP ""' def_ossaudio_devmixer='#define PATH_DEV_MIXER ""' _noaomodules="oss $_noaomodules" fi echores "$_ossaudio" echocheck "aRts" if test "$_arts" = auto ; then _arts=no if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then cat > $TMPC << EOF #include <artsc.h> int main(void) { return 0; } EOF cc_check `artsc-config --libs` `artsc-config --cflags` && tmp_run && _arts=yes fi fi if test "$_arts" = yes ; then def_arts='#define CONFIG_ARTS 1' _aomodules="arts $_aomodules" _libs_mplayer="$_libs_mplayer `artsc-config --libs`" _inc_extra="$_inc_extra `artsc-config --cflags`" else _noaomodules="arts $_noaomodules" fi echores "$_arts" echocheck "EsounD" if test "$_esd" = auto ; then _esd=no if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then cat > $TMPC << EOF #include <esd.h> int main(void) { int fd = esd_open_sound("test"); return fd; } EOF cc_check `esd-config --libs` `esd-config --cflags` && _esd=yes fi fi echores "$_esd" if test "$_esd" = yes ; then def_esd='#define CONFIG_ESD 1' _aomodules="esd $_aomodules" _libs_mplayer="$_libs_mplayer `esd-config --libs`" _inc_extra="$_inc_extra `esd-config --cflags`" echocheck "esd_get_latency()" cat > $TMPC << EOF #include <esd.h> int main(void) { return esd_get_latency(0); } EOF cc_check `esd-config --libs` `esd-config --cflags` && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY' echores "$_esd_latency" else def_esd='#undef CONFIG_ESD' def_esd_latency='#undef CONFIG_ESD_LATENCY' _noaomodules="esd $_noaomodules" fi echocheck "NAS" if test "$_nas" = auto ; then cat > $TMPC << EOF #include <audio/audiolib.h> int main(void) { return 0; } EOF _nas=no cc_check $_ld_lm -laudio -lXt && _nas=yes fi if test "$_nas" = yes ; then def_nas='#define CONFIG_NAS 1' _libs_mplayer="$_libs_mplayer -laudio -lXt" _aomodules="nas $_aomodules" else _noaomodules="nas $_noaomodules" def_nas='#undef CONFIG_NAS' fi echores "$_nas" echocheck "pulse" if test "$_pulse" = auto ; then _pulse=no if $_pkg_config --exists 'libpulse >= 0.9' ; then cat > $TMPC << EOF #include <pulse/pulseaudio.h> int main(void) { return 0; } EOF cc_check `$_pkg_config --libs --cflags libpulse` && tmp_run && _pulse=yes fi fi echores "$_pulse" if test "$_pulse" = yes ; then def_pulse='#define CONFIG_PULSE 1' _aomodules="pulse $_aomodules" _libs_mplayer="$_libs_mplayer `$_pkg_config --libs libpulse`" _inc_extra="$_inc_extra `$_pkg_config --cflags libpulse`" else def_pulse='#undef CONFIG_PULSE' _noaomodules="pulse $_noaomodules" fi echocheck "JACK" if test "$_jack" = auto ; then _jack=yes cat > $TMPC << EOF #include <jack/jack.h> int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; } EOF if cc_check -ljack ; then _libs_mplayer="$_libs_mplayer -ljack" elif cc_check `$_pkg_config --libs --cflags --silence-errors jack` ; then _libs_mplayer="$_libs_mplayer `$_pkg_config --libs jack`" _inc_extra="$_inc_extra "`$_pkg_config --cflags jack`"" else _jack=no fi fi if test "$_jack" = yes ; then def_jack='#define CONFIG_JACK 1' _aomodules="jack $_aomodules" else _noaomodules="jack $_noaomodules" fi echores "$_jack" echocheck "OpenAL" if test "$_openal" = auto ; then _openal=no cat > $TMPC << EOF #ifdef OPENAL_AL_H #include <OpenAL/al.h> #else #include <AL/al.h> #endif int main(void) { alSourceQueueBuffers(0, 0, 0); // alGetSourcei(0, AL_SAMPLE_OFFSET, 0); return 0; } EOF for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do cc_check $I && _openal=yes && break cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break done test "$_openal" = yes && _libs_mplayer="$_libs_mplayer $I" fi if test "$_openal" = yes ; then def_openal='#define CONFIG_OPENAL 1' _aomodules="openal $_aomodules" else _noaomodules="openal $_noaomodules" fi echores "$_openal" echocheck "ALSA audio" if test "$_alloca" != yes ; then _alsa=no _res_comment="alloca missing" fi if test "$_alsa" != no ; then _alsa=no cat > $TMPC << EOF #include <sys/time.h> #include <sys/asoundlib.h> #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5)) #error "alsa version != 0.5.x" #endif int main(void) { return 0; } EOF cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x' cat > $TMPC << EOF #include <sys/time.h> #include <sys/asoundlib.h> #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9)) #error "alsa version != 0.9.x" #endif int main(void) { return 0; } EOF cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys' cat > $TMPC << EOF #include <sys/time.h> #include <alsa/asoundlib.h> #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9)) #error "alsa version != 0.9.x" #endif int main(void) { return 0; } EOF cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa' cat > $TMPC << EOF #include <sys/time.h> #include <sys/asoundlib.h> #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0)) #error "alsa version != 1.0.x" #endif int main(void) { return 0; } EOF cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys' cat > $TMPC << EOF #include <sys/time.h> #include <alsa/asoundlib.h> #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0)) #error "alsa version != 1.0.x" #endif int main(void) { return 0; } EOF cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa' fi def_alsa='#undef CONFIG_ALSA' def_alsa5='#undef CONFIG_ALSA5' def_alsa9='#undef CONFIG_ALSA9' def_alsa1x='#undef CONFIG_ALSA1X' def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H' def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H' if test "$_alsaver" ; then _alsa=yes if test "$_alsaver" = '0.5.x' ; then _alsa5=yes _aomodules="alsa5 $_aomodules" def_alsa5='#define CONFIG_ALSA5 1' def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1' _res_comment="using alsa 0.5.x and sys/asoundlib.h" elif test "$_alsaver" = '0.9.x-sys' ; then _alsa9=yes _aomodules="alsa $_aomodules" def_alsa='#define CONFIG_ALSA 1' def_alsa9='#define CONFIG_ALSA9 1' def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1' _res_comment="using alsa 0.9.x and sys/asoundlib.h" elif test "$_alsaver" = '0.9.x-alsa' ; then _alsa9=yes _aomodules="alsa $_aomodules" def_alsa='#define CONFIG_ALSA 1' def_alsa9='#define CONFIG_ALSA9 1' def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1' _res_comment="using alsa 0.9.x and alsa/asoundlib.h" elif test "$_alsaver" = '1.0.x-sys' ; then _alsa1x=yes _aomodules="alsa $_aomodules" def_alsa='#define CONFIG_ALSA 1' def_alsa1x="#define CONFIG_ALSA1X 1" def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1' _res_comment="using alsa 1.0.x and sys/asoundlib.h" elif test "$_alsaver" = '1.0.x-alsa' ; then _alsa1x=yes _aomodules="alsa $_aomodules" def_alsa='#define CONFIG_ALSA 1' def_alsa1x="#define CONFIG_ALSA1X 1" def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1' _res_comment="using alsa 1.0.x and alsa/asoundlib.h" else _alsa=no _res_comment="unknown version" fi _ld_extra="$_ld_extra -lasound $_ld_dl $_ld_pthread" else _noaomodules="alsa $_noaomodules" fi echores "$_alsa" echocheck "Sun audio" if test "$_sunaudio" = auto ; then cat > $TMPC << EOF #include <sys/types.h> #include <sys/audioio.h> int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; } EOF _sunaudio=no cc_check && _sunaudio=yes fi if test "$_sunaudio" = yes ; then def_sunaudio='#define CONFIG_SUN_AUDIO 1' _aomodules="sun $_aomodules" else def_sunaudio='#undef CONFIG_SUN_AUDIO' _noaomodules="sun $_noaomodules" fi echores "$_sunaudio" def_mlib='#define CONFIG_MLIB 0' if sunos; then echocheck "Sun mediaLib" if test "$_mlib" = auto ; then _mlib=no cat > $TMPC << EOF #include <mlib.h> int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; } EOF cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1' fi echores "$_mlib" fi #if sunos if irix; then echocheck "SGI audio" if test "$_sgiaudio" = auto ; then # check for SGI audio cat > $TMPC << EOF #include <dmedia/audio.h> int main(void) { return 0; } EOF _sgiaudio=no cc_check && _sgiaudio=yes fi if test "$_sgiaudio" = "yes" ; then def_sgiaudio='#define CONFIG_SGI_AUDIO 1' _libs_mplayer="$_libs_mplayer -laudio" _aomodules="sgi $_aomodules" else def_sgiaudio='#undef CONFIG_SGI_AUDIO' _noaomodules="sgi $_noaomodules" fi echores "$_sgiaudio" fi #if irix # set default CD/DVD devices if win32 || os2 ; then default_cdrom_device="D:" elif darwin ; then default_cdrom_device="/dev/disk1" elif dragonfly ; then default_cdrom_device="/dev/cd0" elif freebsd ; then default_cdrom_device="/dev/acd0" elif openbsd ; then default_cdrom_device="/dev/rcd0a" elif sunos ; then default_cdrom_device="/vol/dev/aliases/cdrom0" elif amigaos ; then default_cdrom_device="a1ide.device:2" else default_cdrom_device="/dev/cdrom" fi if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then default_dvd_device=$default_cdrom_device elif darwin ; then default_dvd_device="/dev/rdiskN" else default_dvd_device="/dev/dvd" fi echocheck "VCD support" if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos || mingw32; then _inputmodules="vcd $_inputmodules" def_vcd='#define CONFIG_VCD 1' _vcd="yes" else def_vcd='#undef CONFIG_VCD' _noinputmodules="vcd $_noinputmodules" _res_comment="not supported on this OS" _vcd="no" fi echores "$_vcd" echocheck "dvdread" if test "$_dvdread_internal" = auto ; then _dvdread_internal=no _dvdread=no if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \ && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \ test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \ || darwin || win32 || os2; then _dvdread_internal=yes _dvdread=yes _inc_extra="$_inc_extra -Ilibdvdread4" fi elif test "$_dvdread" = auto ; then _dvdread=no if test "$_dl" = yes; then cat > $TMPC << EOF #include <inttypes.h> #include <dvdread/dvd_reader.h> #include <dvdread/ifo_types.h> #include <dvdread/ifo_read.h> #include <dvdread/nav_read.h> int main(void) { return 0; } EOF fi _dvdreadcflags=`$_dvdreadconfig --cflags` _dvdreadlibs=`$_dvdreadconfig --libs` if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \ $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then _dvdread=yes _inc_extra="$_inc_extra $_dvdreadcflags" _ld_extra="$_ld_extra $_dvdreadlibs" _res_comment="external" fi fi if test "$_dvdread_internal" = yes; then def_dvdread='#define CONFIG_DVDREAD 1' _inputmodules="dvdread(internal) $_inputmodules" _largefiles=yes _res_comment="internal" elif test "$_dvdread" = yes; then def_dvdread='#define CONFIG_DVDREAD 1' _largefiles=yes _ld_extra="$_ld_extra -ldvdread" _inputmodules="dvdread(external) $_inputmodules" _res_comment="external" else def_dvdread='#undef CONFIG_DVDREAD' _noinputmodules="dvdread $_noinputmodules" fi echores "$_dvdread" echocheck "internal libdvdcss" if test "$_libdvdcss_internal" = auto ; then _libdvdcss_internal=no test "$_dvdread_internal" = yes && _libdvdcss_internal=yes hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no fi if test "$_libdvdcss_internal" = yes ; then if linux || netbsd || openbsd || bsdos ; then def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1' openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1' elif freebsd || dragonfly ; then def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1' elif darwin ; then def_dvd_darwin='#define DARWIN_DVD_IOCTL' _ld_extra="$_ld_extra -framework IOKit" elif cygwin ; then cflags_libdvdcss="-DSYS_CYGWIN -DWIN32" elif beos ; then cflags_libdvdcss="-DSYS_BEOS" elif os2 ; then cflags_libdvdcss="-DSYS_OS2" fi cflags_libdvdcss_dvdread="-Ilibdvdcss -DHAVE_DVDCSS_DVDCSS_H" _inputmodules="libdvdcss(internal) $_inputmodules" _largefiles=yes else _noinputmodules="libdvdcss(internal) $_noinputmodules" fi echores "$_libdvdcss_internal" echocheck "cdparanoia" if test "$_cdparanoia" = auto ; then cat > $TMPC <<EOF #include <cdda_interface.h> #include <cdda_paranoia.h> // This need a better test. How ? int main(void) { void *test = cdda_verbose_set; return test == (void *)1; } EOF _cdparanoia=no for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \ _cdparanoia=yes && _inc_extra="$_inc_extra $_inc_tmp" && break done fi if test "$_cdparanoia" = yes ; then _cdda='yes' _ld_extra="$_ld_extra -lcdda_interface -lcdda_paranoia" openbsd && _ld_extra="$_ld_extra -lutil" fi echores "$_cdparanoia" echocheck "libcdio" if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then cat > $TMPC << EOF #include <stdio.h> #include <cdio/version.h> #include <cdio/cdda.h> #include <cdio/paranoia.h> int main(void) { void *test = cdda_verbose_set; printf("%s\n", CDIO_VERSION); return test == (void *)1; } EOF _libcdio=no for _ld_tmp in "" "-lwinmm" ; do _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp" cc_check $_ld_tmp $_ld_lm \ && _libcdio=yes && _ld_extra="$_ld_extra $_ld_tmp" && break done if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then _inc_tmp=`$_pkg_config --cflags libcdio_paranoia` _ld_tmp=`$_pkg_config --libs libcdio_paranoia` cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \ && _ld_extra="$_ld_extra $_ld_tmp" && _inc_extra="$_inc_extra $_inc_tmp" fi fi if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then _cdda='yes' def_libcdio='#define CONFIG_LIBCDIO' def_havelibcdio='yes' else if test "$_cdparanoia" = yes ; then _res_comment="using cdparanoia" fi def_libcdio='#undef CONFIG_LIBCDIO' def_havelibcdio='no' fi echores "$_libcdio" if test "$_cdda" = yes ; then test $_cddb = auto && test $_network = yes && _cddb=yes def_cdparanoia='#define CONFIG_CDDA' _inputmodules="cdda $_inputmodules" else def_cdparanoia='#undef CONFIG_CDDA' _noinputmodules="cdda $_noinputmodules" fi if test "$_cddb" = yes ; then def_cddb='#define CONFIG_CDDB' _inputmodules="cddb $_inputmodules" else _cddb=no def_cddb='#undef CONFIG_CDDB' _noinputmodules="cddb $_noinputmodules" fi echocheck "bitmap font support" if test "$_bitmap_font" = yes ; then def_bitmap_font="#define CONFIG_BITMAP_FONT 1" else def_bitmap_font="#undef CONFIG_BITMAP_FONT" fi echores "$_bitmap_font" echocheck "freetype >= 2.0.9" # freetype depends on iconv if test "$_iconv" = no ; then _freetype=no _res_comment="iconv support needed" fi if test "$_freetype" = auto ; then if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then cat > $TMPC << EOF #include <stdio.h> #include <ft2build.h> #include FT_FREETYPE_H #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9))) #error "Need FreeType 2.0.9 or newer" #endif int main(void) { FT_Library library; FT_Int major=-1,minor=-1,patch=-1; int err=FT_Init_FreeType(&library); if (err) { printf("Couldn't initialize freetype2 lib, err code: %d\n",err); exit(err); } FT_Library_Version(library,&major,&minor,&patch); // in v2.1.0+ only :((( printf("freetype2 header version: %d.%d.%d library version: %d.%d.%d\n", FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH, (int)major,(int)minor,(int)patch ); if (major!=FREETYPE_MAJOR || minor!=FREETYPE_MINOR) { printf("Library and header version mismatch! Fix it in your distribution!\n"); exit(1); } return 0; } EOF _freetype=no cc_check `$_freetypeconfig --cflags` `$_freetypeconfig --libs` && tmp_run && _freetype=yes else _freetype=no fi fi if test "$_freetype" = yes ; then def_freetype='#define CONFIG_FREETYPE' _inc_extra="$_inc_extra `$_freetypeconfig --cflags`" _ld_extra="$_ld_extra `$_freetypeconfig --libs`" else def_freetype='#undef CONFIG_FREETYPE' fi echores "$_freetype" if test "$_freetype" = no ; then _fontconfig=no _res_comment="FreeType support needed" fi echocheck "fontconfig" if test "$_fontconfig" = auto ; then cat > $TMPC << EOF #include <stdio.h> #include <stdlib.h> #include <fontconfig/fontconfig.h> int main(void) { int err = FcInit(); if (err == FcFalse) { printf("Couldn't initialize fontconfig lib\n"); exit(err); } return 0; } EOF _fontconfig=no for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" ; do _ld_tmp="-lfontconfig $_ld_tmp" cc_check $_ld_tmp && _fontconfig=yes && _ld_extra="$_ld_extra $_ld_tmp" && break done if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then _inc_tmp=`$_pkg_config --cflags fontconfig` _ld_tmp=`$_pkg_config --libs fontconfig` cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \ && _ld_extra="$_ld_extra $_ld_tmp" && _inc_extra="$_inc_extra $_inc_tmp" fi fi if test "$_fontconfig" = yes ; then def_fontconfig='#define CONFIG_FONTCONFIG' else def_fontconfig='#undef CONFIG_FONTCONFIG' fi echores "$_fontconfig" echocheck "SSA/ASS support" # libass depends on FreeType if test "$_freetype" = no ; then _ass=no _res_comment="FreeType support needed" fi if test "$_ass" = auto ; then cat > $TMPC << EOF #include <ft2build.h> #include FT_FREETYPE_H #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 1) || ((FREETYPE_MINOR == 1) && (FREETYPE_PATCH < 8))) #error "Need FreeType 2.1.8 or newer" #endif int main(void) { return 0; } EOF _ass=no cc_check `$_freetypeconfig --cflags` `$_freetypeconfig --libs` && tmp_run && _ass=yes if test "$_ass" = no ; then _res_comment="FreeType >= 2.1.8 needed" fi fi if test "$_ass" = yes ; then def_ass='#define CONFIG_ASS' else def_ass='#undef CONFIG_ASS' fi echores "$_ass" echocheck "fribidi with charsets" if test "$_fribidi" = auto ; then if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then cat > $TMPC << EOF #include <stdio.h> /* workaround for fribidi 0.10.4 and below */ #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8 #include <fribidi/fribidi.h> int main(void) { if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) { printf("Fribidi headers are not consistents with the library!\n"); exit(1); } return 0; } EOF _fribidi=no cc_check `$_fribidiconfig --cflags` `$_fribidiconfig --libs` && tmp_run && _fribidi=yes else _fribidi=no fi fi if test "$_fribidi" = yes ; then def_fribidi='#define CONFIG_FRIBIDI' _inc_extra="$_inc_extra `$_fribidiconfig --cflags`" _ld_extra="$_ld_extra `$_fribidiconfig --libs`" else def_fribidi='#undef CONFIG_FRIBIDI' fi echores "$_fribidi" echocheck "ENCA" if test "$_enca" = auto ; then cat > $TMPC << EOF #include <sys/types.h> #include <enca.h> int main(void) { const char **langs; size_t langcnt; langs = enca_get_languages(&langcnt); return 0; } EOF _enca=no cc_check -lenca $_ld_lm && _enca=yes fi if test "$_enca" = yes ; then def_enca='#define CONFIG_ENCA 1' _ld_extra="$_ld_extra -lenca" else def_enca='#undef CONFIG_ENCA' fi echores "$_enca" echocheck "zlib" cat > $TMPC << EOF #include <zlib.h> int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; } EOF _zlib=no cc_check -lz && _zlib=yes if test "$_zlib" = yes ; then def_zlib='#define CONFIG_ZLIB 1' _ld_extra="$_ld_extra -lz" else def_zlib='#define CONFIG_ZLIB 0' _libavdecoders=`echo $_libavdecoders | sed -e s/FLASHSV_DECODER// -e s/PNG_DECODER// -e s/ZMBV_DECODER// -e s/DXA_DECODER// -e s/TSCC_DECODER// ` _libavencoders=`echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER// ` fi echores "$_zlib" echocheck "bzlib" bzlib=no def_bzlib='#define CONFIG_BZLIB 0' cat > $TMPC << EOF #include <bzlib.h> int main(void) { BZ2_bzlibVersion(); return 0; } EOF cc_check -lbz2 && bzlib=yes if test "$bzlib" = yes ; then def_bzlib='#define CONFIG_BZLIB 1' _ld_extra="$_ld_extra -lbz2" fi echores "$bzlib" echocheck "RTC" if test "$_rtc" = auto ; then cat > $TMPC << EOF #include <sys/ioctl.h> #ifdef __linux__ #include <linux/rtc.h> #else #include <rtc.h> #define RTC_PIE_ON RTCIO_PIE_ON #endif int main(void) { return RTC_PIE_ON; } EOF _rtc=no cc_check && _rtc=yes ppc && _rtc=no fi if test "$_rtc" = yes ; then def_rtc='#define HAVE_RTC 1' else def_rtc='#undef HAVE_RTC' fi echores "$_rtc" echocheck "liblzo2 support" if test "$_liblzo" = auto ; then _liblzo=no cat > $TMPC << EOF #include <lzo/lzo1x.h> int main(void) { lzo_init();return 0; } EOF cc_check -llzo2 && _liblzo=yes fi if test "$_liblzo" = yes ; then def_liblzo='#define CONFIG_LIBLZO 1' _ld_extra="$_ld_extra -llzo2" _codecmodules="liblzo $_codecmodules" else def_liblzo='#undef CONFIG_LIBLZO' _nocodecmodules="liblzo $_nocodecmodules" fi echores "$_liblzo" echocheck "mad support" if test "$_mad" = auto ; then _mad=no cat > $TMPC << EOF #include <mad.h> int main(void) { return 0; } EOF cc_check -lmad && _mad=yes fi if test "$_mad" = yes ; then def_mad='#define CONFIG_LIBMAD 1' _ld_extra="$_ld_extra -lmad" _codecmodules="libmad $_codecmodules" else def_mad='#undef CONFIG_LIBMAD' _nocodecmodules="libmad $_nocodecmodules" fi echores "$_mad" echocheck "Twolame" if test "$_twolame" = auto ; then cat > $TMPC <<EOF #include <twolame.h> int main(void) { twolame_init(); return 0; } EOF _twolame=no cc_check -ltwolame $_ld_lm && _twolame=yes fi if test "$_twolame" = yes ; then def_twolame='#define CONFIG_TWOLAME 1' _libs_mencoder="$_libs_mencoder -ltwolame" _codecmodules="twolame $_codecmodules" else def_twolame='#undef CONFIG_TWOLAME' _nocodecmodules="twolame $_nocodecmodules" fi echores "$_twolame" echocheck "Toolame" if test "$_toolame" = auto ; then _toolame=no if test "$_twolame" = yes ; then _res_comment="disabled by twolame" else cat > $TMPC <<EOF #include <toolame.h> int main(void) { toolame_init(); return 0; } EOF cc_check -ltoolame $_ld_lm && _toolame=yes fi fi if test "$_toolame" = yes ; then def_toolame='#define CONFIG_TOOLAME 1' _libs_mencoder="$_libs_mencoder -ltoolame" _codecmodules="toolame $_codecmodules" else def_toolame='#undef CONFIG_TOOLAME' _nocodecmodules="toolame $_nocodecmodules" fi if test "$_toolamedir" ; then _res_comment="using $_toolamedir" fi echores "$_toolame" echocheck "OggVorbis support" if test "$_tremor_internal" = yes; then _libvorbis=no elif test "$_tremor" = auto; then _tremor=no cat > $TMPC << EOF #include <tremor/ivorbiscodec.h> int main(void) { vorbis_packet_blocksize(0,0); return 0; } EOF cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no fi if test "$_libvorbis" = auto; then _libvorbis=no cat > $TMPC << EOF #include <vorbis/codec.h> int main(void) { vorbis_packet_blocksize(0,0); return 0; } EOF cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes fi if test "$_tremor_internal" = yes ; then _vorbis=yes def_vorbis='#define CONFIG_OGGVORBIS 1' def_tremor='#define CONFIG_TREMOR 1' _codecmodules="tremor(internal) $_codecmodules" _res_comment="internal Tremor" if test "$_tremor_low" = yes ; then cflags_tremor_low="-D_LOW_ACCURACY_" _res_comment="internal low accuracy Tremor" fi elif test "$_tremor" = yes ; then _vorbis=yes def_vorbis='#define CONFIG_OGGVORBIS 1' def_tremor='#define CONFIG_TREMOR 1' _codecmodules="tremor(external) $_codecmodules" _res_comment="external Tremor" _ld_extra="$_ld_extra -logg -lvorbisidec" elif test "$_libvorbis" = yes ; then _vorbis=yes def_vorbis='#define CONFIG_OGGVORBIS 1' _codecmodules="libvorbis $_codecmodules" _res_comment="libvorbis" _ld_extra="$_ld_extra -lvorbis -logg" else _vorbis=no _nocodecmodules="libvorbis $_nocodecmodules" fi echores "$_vorbis" echocheck "libspeex (version >= 1.1 required)" if test "$_speex" = auto ; then _speex=no cat > $TMPC << EOF #include <speex/speex.h> int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; } EOF cc_check -lspeex $_ld_lm && _speex=yes fi if test "$_speex" = yes ; then def_speex='#define CONFIG_SPEEX 1' _ld_extra="$_ld_extra -lspeex" _codecmodules="speex $_codecmodules" else def_speex='#undef CONFIG_SPEEX' _nocodecmodules="speex $_nocodecmodules" fi echores "$_speex" echocheck "OggTheora support" if test "$_theora" = auto ; then _theora=no cat > $TMPC << EOF #include <theora/theora.h> #include <string.h> int main(void) { /* Theora is in flux, make sure that all interface routines and datatypes * exist and work the way we expect it, so we don't break MPlayer. */ ogg_packet op; theora_comment tc; theora_info inf; theora_state st; yuv_buffer yuv; int r; double t; theora_info_init(&inf); theora_comment_init(&tc); return 0; /* we don't want to execute this kind of nonsense; just for making sure * that compilation works... */ memset(&op, 0, sizeof(op)); r = theora_decode_header(&inf, &tc, &op); r = theora_decode_init(&st, &inf); t = theora_granule_time(&st, op.granulepos); r = theora_decode_packetin(&st, &op); r = theora_decode_YUVout(&st, &yuv); theora_clear(&st); return 0; } EOF _ld_theora=$($_pkg_config --silence-errors --libs theora) _inc_theora=$($_pkg_config --silence-errors --cflags theora) cc_check $_inc_theora $_ld_theora && _ld_extra="$_ld_extra $_ld_theora" && _inc_extra="$_inc_extra $_inc_theora" && _theora=yes if test _theora = no; then _ld_theora="-ltheora -logg" cc_check $_ld_theora && _ld_extra="$_ld_extra $_ld_theora" && _theora=yes fi if test "$_theora" = no && test "$_tremor_internal" = yes; then _ld_theora=$($_pkg_config --silence-errors --libs theora) _inc_theora=$($_pkg_config --silence-errors --cflags theora) cc_check tremor/bitwise.c $_inc_theora $_ld_theora && _ld_extra="$_ld_extra $_ld_theora" && _inc_extra="$_inc_extra $_inc_theora" && _theora=yes if test _theora = no; then _ld_theora="-ltheora -logg" cc_check tremor/bitwise.c $_ld_theora && _ld_extra="$_ld_extra $_ld_theora" && _theora=yes fi fi fi if test "$_theora" = yes ; then def_theora='#define CONFIG_OGGTHEORA 1' _codecmodules="libtheora $_codecmodules" # when --enable-theora is forced, we'd better provide a probably sane # $_ld_theora than nothing test -z "$_ld_theora" && _ld_extra="$_ld_extra -ltheora -logg" else def_theora='#undef CONFIG_OGGTHEORA' _nocodecmodules="libtheora $_nocodecmodules" fi echores "$_theora" echocheck "internal mp3lib support" if test "$_mp3lib" = auto ; then test "$cc_vendor" = intel && _mp3lib=no || _mp3lib=yes fi if test "$_mp3lib" = yes ; then def_mp3lib='#define CONFIG_MP3LIB 1' _codecmodules="mp3lib(internal) $_codecmodules" else def_mp3lib='#undef CONFIG_MP3LIB' _nocodecmodules="mp3lib(internal) $_nocodecmodules" fi echores "$_mp3lib" echocheck "liba52 support" if test "$_liba52_internal" = auto ; then test "$cc_vendor" = intel && _liba52_internal=no || _liba52_internal=yes fi def_liba52='#undef CONFIG_LIBA52' def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL" if test "$_liba52_internal" = yes ; then _liba52=yes def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1" _res_comment="internal" elif test "$_liba52_internal" = no && test "$_liba52" = auto ; then _liba52=no cat > $TMPC << EOF #include <inttypes.h> #include <a52dec/a52.h> int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; } EOF cc_check -la52 && _liba52=yes && _res_comment="external" && _ld_extra="$_ld_extra -la52" fi if test "$_liba52" = yes ; then def_liba52='#define CONFIG_LIBA52 1' _codecmodules="liba52($_res_comment) $_codecmodules" else _nocodecmodules="liba52 $_nocodecmodules" fi echores "$_liba52" echocheck "internal libmpeg2 support" if test "$_libmpeg2" = auto ; then _libmpeg2=yes if alpha && test cc_vendor=gnu; then case $cc_version in 2*|3.0*|3.1*) # cannot compile MVI instructions _libmpeg2=no _res_comment="broken gcc" ;; esac fi fi if test "$_libmpeg2" = yes ; then def_libmpeg2='#define CONFIG_LIBMPEG2 1' _codecmodules="libmpeg2(internal) $_codecmodules" else def_libmpeg2='#undef CONFIG_LIBMPEG2' _nocodecmodules="libmpeg2(internal) $_nocodecmodules" fi echores "$_libmpeg2" echocheck "libdca support" if test "$_libdca" = auto ; then _libdca=no cat > $TMPC << EOF #include <inttypes.h> #include <dts.h> int main(void) { dts_init(0); return 0; } EOF for _ld_dca in -ldts -ldca ; do cc_check $_ld_dca $_ld_lm && _ld_extra="$_ld_extra $_ld_dca" \ && _libdca=yes && break done fi if test "$_libdca" = yes ; then def_libdca='#define CONFIG_LIBDCA 1' _codecmodules="libdca $_codecmodules" else def_libdca='#undef CONFIG_LIBDCA' _nocodecmodules="libdca $_nocodecmodules" fi echores "$_libdca" echocheck "libmpcdec (musepack, version >= 1.2.1 required)" if test "$_musepack" = auto ; then _musepack=no cat > $TMPC << EOF #include <stddef.h> #include <mpcdec/mpcdec.h> int main(void) { mpc_streaminfo info; mpc_decoder decoder; mpc_decoder_set_streaminfo(&decoder, &info); mpc_decoder_decode_frame(&decoder, NULL, 0, NULL); return 0; } EOF cc_check -lmpcdec $_ld_lm && _musepack=yes fi if test "$_musepack" = yes ; then def_musepack='#define CONFIG_MUSEPACK 1' _ld_extra="$_ld_extra -lmpcdec" _codecmodules="musepack $_codecmodules" else def_musepack='#undef CONFIG_MUSEPACK' _nocodecmodules="musepack $_nocodecmodules" fi echores "$_musepack" echocheck "FAAC support" if test "$_faac" = auto ; then cat > $TMPC <<EOF #include <inttypes.h> #include <faac.h> int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; } EOF _faac=no for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do cc_check -O4 $_ld_faac $_ld_lm && _libs_mencoder="$_libs_mencoder $_ld_faac" && _faac=yes && break done fi if test "$_faac" = yes ; then def_faac="#define CONFIG_FAAC 1" test "$_faac_lavc" = auto && _faac_lavc=yes if test "$_faac_lavc" = yes ; then def_faac_lavc="#define CONFIG_LIBFAAC 1" _libs_mplayer="$_libs_mplayer $_ld_faac" _libavencoders="$_libavencoders LIBFAAC_ENCODER" fi _codecmodules="faac $_codecmodules" else _faac_lavc=no def_faac="#undef CONFIG_FAAC" def_faac_lavc="#define CONFIG_LIBFAAC 0" _nocodecmodules="faac $_nocodecmodules" fi _res_comment="in libavcodec: $_faac_lavc" echores "$_faac" echocheck "FAAD2 support" if test "$_faad_internal" = auto ; then if x86_32 && test cc_vendor=gnu; then case $cc_version in 3.1*|3.2) # ICE/insn with these versions _faad_internal=no _res_comment="broken gcc" ;; *) _faad=yes _faad_internal=yes ;; esac else _faad=yes _faad_internal=yes fi fi if test "$_faad" = auto ; then cat > $TMPC << EOF #include <faad.h> #ifndef FAAD_MIN_STREAMSIZE #error Too old version #endif int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo; testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; } EOF cc_check -lfaad $_ld_lm && _faad=yes fi def_faad='#undef CONFIG_FAAD' def_faad_internal="#undef CONFIG_FAAD_INTERNAL" if test "$_faad_internal" = yes ; then def_faad_internal="#define CONFIG_FAAD_INTERNAL 1" _res_comment="internal floating-point" if test "$_faad_fixed" = yes ; then # The FIXED_POINT implementation of FAAD2 improves performance # on some platforms, especially for SBR files. cflags_faad_fixed="-DFIXED_POINT" _res_comment="internal fixed-point" fi elif test "$_faad" = yes ; then _ld_extra="$_ld_extra -lfaad" fi if test "$_faad" = yes ; then def_faad='#define CONFIG_FAAD 1' if test "$_faad_internal" = yes ; then _codecmodules="faad2(internal) $_codecmodules" else _codecmodules="faad2 $_codecmodules" fi else _faad=no _nocodecmodules="faad2 $_nocodecmodules" fi echores "$_faad" echocheck "LADSPA plugin support" if test "$_ladspa" = auto ; then cat > $TMPC <<EOF #include <stdio.h> #include <ladspa.h> int main(void) { const LADSPA_Descriptor *ld = NULL; return 0; } EOF _ladspa=no cc_check && _ladspa=yes fi if test "$_ladspa" = yes; then def_ladspa="#define CONFIG_LADSPA" else def_ladspa="#undef CONFIG_LADSPA" fi echores "$_ladspa" if test -z "$_codecsdir" ; then for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \ /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do if test -d "$dir" ; then _codecsdir="$dir" break; fi; done fi # Fall back on default directory. if test -z "$_codecsdir" ; then _codecsdir="$_libdir/codecs" mingw32 && _codecsdir="codecs" os2 && _codecsdir="codecs" fi echocheck "Win32 codecs" if test "$_win32dll" = auto ; then _win32dll=no if x86_32 && ! qnx; then _win32dll=yes fi fi if test "$_win32dll" = yes ; then def_win32dll='#define CONFIG_WIN32DLL 1' test -z "$_win32codecsdir" && _win32codecsdir=$_codecsdir _res_comment="using $_win32codecsdir" if ! win32 ; then def_win32_loader='#define WIN32_LOADER 1' _win32_emulation=yes else _ld_extra="$_ld_extra -ladvapi32 -lole32" _res_comment="using native windows" fi _codecmodules="win32 $_codecmodules" else def_win32dll='#undef CONFIG_WIN32DLL' def_win32_loader='#undef WIN32_LOADER' _nocodecmodules="win32 $_nocodecmodules" fi echores "$_win32dll" echocheck "XAnim codecs" if test "$_xanim" = auto ; then _xanim=no _res_comment="dynamic loader support needed" if test "$_dl" = yes ; then _xanim=yes fi fi if test "$_xanim" = yes ; then test -z "$_xanimcodecsdir" && _xanimcodecsdir=$_codecsdir def_xanim='#define CONFIG_XANIM 1' def_xanim_path="#define XACODEC_PATH \"$_xanimcodecsdir\"" _codecmodules="xanim $_codecmodules" _res_comment="using $_xanimcodecsdir" else def_xanim='#undef CONFIG_XANIM' def_xanim_path='#undef XACODEC_PATH' _nocodecmodules="xanim $_nocodecmodules" fi echores "$_xanim" echocheck "RealPlayer codecs" if test "$_real" = auto ; then _real=no _res_comment="dynamic loader support needed" if test "$_dl" = yes || test "$_win32dll" = yes && (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32) ; then _real=yes fi fi if test "$_real" = yes ; then test -z "$_realcodecsdir" && _realcodecsdir="$_codecsdir" def_real='#define CONFIG_REALCODECS 1' def_real_path="#define REALCODEC_PATH \"$_realcodecsdir\"" _codecmodules="real $_codecmodules" _res_comment="using $_realcodecsdir" else def_real='#undef CONFIG_REALCODECS' def_real_path="#undef REALCODEC_PATH" _nocodecmodules="real $_nocodecmodules" fi echores "$_real" echocheck "QuickTime codecs" _qtx_emulation=no def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32' if test "$_qtx" = auto ; then test "$_win32dll" = yes || darwin && _qtx=yes fi if test "$_qtx" = yes ; then def_qtx='#define CONFIG_QTX_CODECS 1' win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1' _codecmodules="qtx $_codecmodules" darwin || win32 || _qtx_emulation=yes else def_qtx='#undef CONFIG_QTX_CODECS' _nocodecmodules="qtx $_nocodecmodules" fi echores "$_qtx" echocheck "Nemesi Streaming Media libraries" if test "$_nemesi" = auto && test "$_network" = yes ; then _nemesi=no if $_pkg_config libnemesi --atleast-version=0.6.3 ; then _inc_extra="$_inc_extra `$_pkg_config --cflags libnemesi`" _ld_extra="$_ld_extra `$_pkg_config --libs libnemesi`" _nemesi=yes fi fi if test "$_nemesi" = yes; then _native_rtsp=no def_nemesi='#define CONFIG_LIBNEMESI 1' _inputmodules="nemesi $_inputmodules" else _native_rtsp="$_network" _nemesi=no def_nemesi='#undef CONFIG_LIBNEMESI' _noinputmodules="nemesi $_noinputmodules" fi echores "$_nemesi" echocheck "LIVE555 Streaming Media libraries" if test "$_live" = auto && test "$_network" = yes ; then cat > $TMPCPP << EOF #include <liveMedia.hh> #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600) #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/> #endif int main(void) { return 0; } EOF _live=no for I in $_inc_extra "-I$_libdir/live" "-I/usr/lib/live" "-I/usr/lib64/live" "-I/usr/local/live" "-I/usr/local/lib/live" ; do cxx_check $I/liveMedia/include $I/UsageEnvironment/include \ $I/groupsock/include && _livelibdir=`echo $I| sed s/-I//` && \ _ld_extra="$_livelibdir/liveMedia/libliveMedia.a \ $_livelibdir/groupsock/libgroupsock.a \ $_livelibdir/UsageEnvironment/libUsageEnvironment.a \ $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \ $_ld_extra -lstdc++" \ _inc_extraxx="-I$_livelibdir/liveMedia/include \ -I$_livelibdir/UsageEnvironment/include \ -I$_livelibdir/BasicUsageEnvironment/include \ -I$_livelibdir/groupsock/include" && \ _live=yes && break done if test "$_live" != yes ; then if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock; then _live_dist=yes fi fi fi if test "$_live" = yes && test "$_network" = yes; then test $_livelibdir && _res_comment="using $_livelibdir" def_live='#define CONFIG_LIVE555 1' _inputmodules="live555 $_inputmodules" elif test "$_live_dist" = yes && test "$_network" = yes; then _res_comment="using distribution version" _live="yes" def_live='#define CONFIG_LIVE555 1' _ld_extra="$_ld_extra -lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++" _inc_extraxx="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \ -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock" _inputmodules="live555 $_inputmodules" else _live=no def_live='#undef CONFIG_LIVE555' _noinputmodules="live555 $_noinputmodules" fi echores "$_live" echocheck "FFmpeg libavutil" if test "$_libavutil_a" = auto ; then if test -d libavutil ; then _libavutil_a=yes _res_comment="static" else die "MPlayer will not compile without libavutil in the source tree." fi elif test "$_libavutil_so" = auto ; then _libavutil_so=no cat > $TMPC << EOF #include <libavutil/common.h> int main(void) { av_gcd(1,1); return 0; } EOF if $_pkg_config --exists libavutil ; then _inc_libavutil=`$_pkg_config --cflags libavutil` _ld_tmp=`$_pkg_config --libs libavutil` cc_check $_inc_libavutil $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" \ && _libavutil_so=yes elif cc_check -lavutil $_ld_lm ; then _ld_extra="$_ld_extra -lavutil" _libavutil_so=yes _res_comment="using libavutil.so, but static libavutil is recommended" fi fi _libavutil=no def_libavutil='#undef CONFIG_LIBAVUTIL' def_libavutil_a='#undef CONFIG_LIBAVUTIL_A' def_libavutil_so='#undef CONFIG_LIBAVUTIL_SO' test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1' test "$_libavutil_a" = yes && def_libavutil_a='#define CONFIG_LIBAVUTIL_A 1' test "$_libavutil_so" = yes && def_libavutil_so='#define CONFIG_LIBAVUTIL_SO 1' # neither static nor shared libavutil is available, but it is mandatory ... if test "$_libavutil" = no ; then die "You need static or shared libavutil, MPlayer will not compile without!" fi echores "$_libavutil" echocheck "FFmpeg libavcodec" if test "$_libavcodec_a" = auto ; then _libavcodec_a=no if test -d libavcodec && test -f libavcodec/utils.c ; then _libavcodec_a="yes" _res_comment="static" fi elif test "$_libavcodec_so" = auto ; then _libavcodec_so=no _res_comment="libavcodec.so is discouraged over static libavcodec" cat > $TMPC << EOF #include <libavcodec/avcodec.h> int main(void) { avcodec_find_encoder_by_name(""); return 0; } EOF if $_pkg_config --exists libavcodec ; then _inc_libavcodec=`$_pkg_config --cflags libavcodec` _ld_tmp=`$_pkg_config --libs libavcodec` cc_check $_inc_libavcodec $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" \ && _libavcodec_so=yes elif cc_check -lavcodec $_ld_lm ; then _ld_extra="$_ld_extra -lavcodec" _libavcodec_so=yes _res_comment="using libavcodec.so, but static libavcodec is recommended" fi fi _libavcodec=no def_libavcodec='#undef CONFIG_LIBAVCODEC' def_libavcodec_a='#undef CONFIG_LIBAVCODEC_A' def_libavcodec_so='#undef CONFIG_LIBAVCODEC_SO' test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1' test "$_libavcodec_a" = yes && def_libavcodec_a='#define CONFIG_LIBAVCODEC_A 1' test "$_libavcodec_so" = yes && def_libavcodec_so='#define CONFIG_LIBAVCODEC_SO 1' test "$_libavcodec_mpegaudio_hp" = yes \ && def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1' if test "$_libavcodec_a" = yes ; then _codecmodules="libavcodec(internal) $_codecmodules" elif test "$_libavcodec_so" = yes ; then _codecmodules="libavcodec.so $_codecmodules" else _nocodecmodules="libavcodec $_nocodecmodules" fi echores "$_libavcodec" echocheck "FFmpeg libavformat" if test "$_libavformat_a" = auto ; then _libavformat_a=no if test -d libavformat && test -f libavformat/utils.c ; then _libavformat_a=yes _res_comment="static" fi elif test "$_libavformat_so" = auto ; then _libavformat_so=no cat > $TMPC <<EOF #include <libavformat/avformat.h> #include <libavcodec/opt.h> int main(void) { av_alloc_format_context(); return 0; } EOF if $_pkg_config --exists libavformat ; then _inc_libavformat=`$_pkg_config --cflags libavformat` _ld_tmp=`$_pkg_config --libs libavformat` cc_check $_inc_libavformat $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" \ && _libavformat_so=yes elif cc_check $_ld_lm -lavformat ; then _ld_extra="$_ld_extra -lavformat" _libavformat_so=yes _res_comment="using libavformat.so, but static libavformat is recommended" fi fi _libavformat=no def_libavformat='#undef CONFIG_LIBAVFORMAT' def_libavformat_a='#undef CONFIG_LIBAVFORMAT_A' def_libavformat_so='#undef CONFIG_LIBAVFORMAT_SO' test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1' test "$_libavformat_a" = yes && def_libavformat_a='#define CONFIG_LIBAVFORMAT_A 1' test "$_libavformat_so" = yes \ && def_libavformat_so='#define CONFIG_LIBAVFORMAT_SO 1' echores "$_libavformat" echocheck "FFmpeg libpostproc" if test "$_libpostproc_a" = auto ; then _libpostproc_a=no if test -d libpostproc && test -f libpostproc/postprocess.h ; then _libpostproc_a='yes' _res_comment="static" fi elif test "$_libpostproc_so" = auto ; then _libpostproc_so=no cat > $TMPC << EOF #include <inttypes.h> #include <libpostproc/postprocess.h> int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; } EOF if cc_check -lpostproc $_ld_lm ; then _ld_extra="$_ld_extra -lpostproc" _libpostproc_so=yes _res_comment="using libpostproc.so, but static libpostproc is recommended" fi fi _libpostproc=no def_libpostproc='#undef CONFIG_LIBPOSTPROC' def_libpostproc_a='#undef CONFIG_LIBPOSTPROC_A' def_libpostproc_so='#undef CONFIG_LIBPOSTPROC_SO' test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1' test "$_libpostproc_a" = yes && def_libpostproc_a='#define CONFIG_LIBPOSTPROC_A 1' test "$_libpostproc_so" = yes \ && def_libpostproc_so='#define CONFIG_LIBPOSTPROC_SO 1' echores "$_libpostproc" echocheck "FFmpeg libswscale" if test "$_libswscale_a" = auto ; then _libswscale_a=no if test -d libswscale && test -f libswscale/swscale.h ; then _libswscale_a='yes' _res_comment="static" fi elif test "$_libswscale_so" = auto ; then _libswscale_so=no _res_comment="using libswscale.so, but static libswscale is recommended" cat > $TMPC << EOF #include <libswscale/swscale.h> int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; } EOF if $_pkg_config --exists libswscale ; then _inc_libswscale=`$_pkg_config --cflags libswscale` _ld_tmp=`$_pkg_config --libs libswscale` cc_check $_inc_libswscale $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" \ && _libswscale_so=yes elif cc_check -lswscale ; then _ld_extra="$_ld_extra -lswscale" _libswscale_so=yes fi fi _libswscale=no def_libswscale='#undef CONFIG_LIBSWSCALE' def_libswscale_a='#undef CONFIG_LIBSWSCALE_A' def_libswscale_so='#undef CONFIG_LIBSWSCALE_SO' test "$_libswscale_a" = yes || test "$_libswscale_so" = yes && _libswscale=yes test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1' test "$_libswscale_a" = yes && def_libswscale_a='#define CONFIG_LIBSWSCALE_A 1' test "$_libswscale_so" = yes \ && def_libswscale_so='#define CONFIG_LIBSWSCALE_SO 1' echores "$_libswscale" echocheck "libamr narrowband" if test "$_libamr_nb" = auto ; then _libamr_nb=no cat > $TMPC << EOF #include <amrnb/sp_dec.h> int main(void) { Speech_Decode_Frame_init(); return 0; } EOF cc_check -lamrnb && _libamr_nb=yes if test "$_libavcodec_a" != yes ; then _libamr_nb=no _res_comment="libavcodec (static) is required by libamr_nb, sorry" fi fi if test "$_libamr_nb" = yes ; then _libamr=yes _ld_extra="$_ld_extra -lamrnb" def_libamr='#define CONFIG_LIBAMR 1' def_libamr_nb='#define CONFIG_LIBAMR_NB 1' _libavdecoders="$_libavdecoders LIBAMR_NB_DECODER" _libavencoders="$_libavencoders LIBAMR_NB_ENCODER" _codecmodules="libamr_nb $_codecmodules" else def_libamr_nb='#define CONFIG_LIBAMR_NB 0' _nocodecmodules="libamr_nb $_nocodecmodules" fi echores "$_libamr_nb" echocheck "libamr wideband" if test "$_libamr_wb" = auto ; then _libamr_wb=no cat > $TMPC << EOF #include <amrwb/dec_if.h> int main(void) { D_IF_init(); return 0; } EOF cc_check -lamrwb && _libamr_wb=yes if test "$_libavcodec_a" != yes ; then _libamr_wb=no _res_comment="libavcodec (static) is required by libamr_wb, sorry" fi fi if test "$_libamr_wb" = yes ; then _libamr=yes _ld_extra="$_ld_extra -lamrwb" def_libamr='#define CONFIG_LIBAMR 1' def_libamr_wb='#define CONFIG_LIBAMR_WB 1' _libavdecoders="$_libavdecoders LIBAMR_WB_DECODER" _libavencoders="$_libavencoders LIBAMR_WB_ENCODER" _codecmodules="libamr_wb $_codecmodules" else def_libamr_wb='#define CONFIG_LIBAMR_WB 0' _nocodecmodules="libamr_wb $_nocodecmodules" fi echores "$_libamr_wb" echocheck "libdv-0.9.5+" if test "$_libdv" = auto ; then _libdv=no cat > $TMPC <<EOF #include <libdv/dv.h> int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; } EOF cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes fi if test "$_libdv" = yes ; then def_libdv='#define CONFIG_LIBDV095 1' _ld_extra="$_ld_extra -ldv" _codecmodules="libdv $_codecmodules" else def_libdv='#undef CONFIG_LIBDV095' _nocodecmodules="libdv $_nocodecmodules" fi echores "$_libdv" echocheck "Xvid" if test "$_xvid" = auto ; then _xvid=no cat > $TMPC << EOF #include <xvid.h> int main(void) { xvid_global(0, 0, 0, 0); return 0; } EOF for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do cc_check $_ld_tmp && _ld_extra="$_ld_extra $_ld_tmp" && _xvid=yes && break done fi if test "$_xvid" = yes ; then def_xvid='#define CONFIG_XVID4 1' _codecmodules="xvid $_codecmodules" else def_xvid='#undef CONFIG_XVID4' _nocodecmodules="xvid $_nocodecmodules" fi echores "$_xvid" echocheck "Xvid two pass plugin" if test "$_xvid" = yes && test "$_xvid_lavc" = auto ; then cat > $TMPC << EOF #include <xvid.h> int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; } EOF cc_check && _xvid_lavc=yes fi if test "$_xvid_lavc" = yes ; then def_xvid_lavc='#define CONFIG_LIBXVID 1' _libavencoders="$_libavencoders LIBXVID_ENCODER" else _xvid_lavc=no def_xvid_lavc='#define CONFIG_LIBXVID 0' fi echores "$_xvid_lavc" echocheck "x264" if test "$_x264" = auto ; then cat > $TMPC << EOF #include <inttypes.h> #include <x264.h> #if X264_BUILD < 59 #error We do not support old versions of x264. Get the latest from SVN. #endif int main(void) { x264_encoder_open((void*)0); return 0; } EOF _x264=no for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do cc_check $_ld_x264 && _libs_mencoder="$_libs_mencoder $_ld_x264" && _x264=yes && break done fi if test "$_x264" = yes ; then def_x264='#define CONFIG_X264 1' _codecmodules="x264 $_codecmodules" test "$_x264_lavc" = auto && _x264_lavc=yes if test "$_x264_lavc" = yes ; then def_x264_lavc='#define CONFIG_LIBX264 1' _libs_mplayer="$_libs_mplayer $_ld_x264" _libavencoders="$_libavencoders LIBX264_ENCODER" fi else _x264_lavc=no def_x264='#undef CONFIG_X264' def_x264_lavc='#define CONFIG_LIBX264 0' _nocodecmodules="x264 $_nocodecmodules" fi _res_comment="in libavcodec: $_x264_lavc" echores "$_x264" echocheck "libdirac" if test "$_libdirac_lavc" = auto; then _libdirac_lavc=no if test "$_libavcodec_a" != yes; then _res_comment="libavcodec (static) is required by libdirac, sorry" else cat > $TMPC << EOF #include <libdirac_encoder/dirac_encoder.h> #include <libdirac_decoder/dirac_parser.h> int main(void) { dirac_encoder_context_t enc_ctx; dirac_decoder_t *dec_handle; dirac_encoder_context_init(&enc_ctx, VIDEO_FORMAT_SD_576I50); dec_handle = dirac_decoder_init(0); if (dec_handle) dirac_decoder_close(dec_handle); return 0; } EOF if $_pkg_config --exists dirac ; then _inc_dirac=`$_pkg_config --silence-errors --cflags dirac` _ld_dirac=`$_pkg_config --silence-errors --libs dirac` cc_check $_inc_dirac $_ld_dirac && _libdirac_lavc=yes && _inc_extra="$_inc_extra $_inc_dirac" && _ld_extra="$_ld_extra $_ld_dirac" fi fi fi if test "$_libdirac_lavc" = yes ; then def_libdirac_lavc='#define CONFIG_LIBDIRAC 1' _libavencoders="$_libavencoders LIBDIRAC_ENCODER" _libavdecoders="$_libavdecoders LIBDIRAC_DECODER" _codecmodules="libdirac $_codecmodules" else def_libdirac_lavc='#define CONFIG_LIBDIRAC 0' _nocodecmodules="libdirac $_nocodecmodules" fi echores "$_libdirac_lavc" echocheck "libschroedinger" if test "$_libschroedinger_lavc" = auto ; then _libschroedinger_lavc=no if test "$_libavcodec_a" != yes; then _res_comment="libavcodec (static) is required by libschroedinger, sorry" else cat > $TMPC << EOF #include <schroedinger/schro.h> int main(void) { schro_init(); return 0; } EOF if $_pkg_config --exists schroedinger-1.0 ; then _inc_schroedinger=`$_pkg_config --silence-errors --cflags schroedinger-1.0` _ld_schroedinger=`$_pkg_config --silence-errors --libs schroedinger-1.0` cc_check $_inc_schroedinger $_ld_schroedinger && _libschroedinger_lavc=yes && _inc_extra="$_inc_extra $_inc_schroedinger" && _ld_extra="$_ld_extra $_ld_schroedinger" fi fi fi if test "$_libschroedinger_lavc" = yes ; then def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 1' _libavencoders="$_libavencoders LIBSCHROEDINGER_ENCODER" _libavdecoders="$_libavdecoders LIBSCHROEDINGER_DECODER" _codecmodules="libschroedinger $_codecmodules" else def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 0' _nocodecmodules="libschroedinger $_nocodecmodules" fi echores "$_libschroedinger_lavc" echocheck "libnut" if test "$_libnut" = auto ; then cat > $TMPC << EOF #include <stdio.h> #include <stdlib.h> #include <inttypes.h> #include <libnut.h> int main(void) { (void)nut_error(0); return 0; } EOF _libnut=no cc_check -lnut && _libnut=yes fi if test "$_libnut" = yes ; then def_libnut='#define CONFIG_LIBNUT 1' _ld_extra="$_ld_extra -lnut" else def_libnut='#undef CONFIG_LIBNUT' fi echores "$_libnut" #check must be done after libavcodec one echocheck "zr" if test "$_zr" = auto ; then #36067's seem to identify themselves as 36057PQC's, so the line #below should work for 36067's and 36057's. if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then _zr=yes else _zr=no fi fi if test "$_zr" = yes ; then if test "$_libavcodec_a" = yes ; then def_zr='#define CONFIG_ZR 1' _vomodules="zr zr2 $_vomodules" else _res_comment="libavcodec (static) is required by zr, sorry" _novomodules="zr $_novomodules" def_zr='#undef CONFIG_ZR' fi else def_zr='#undef CONFIG_ZR' _novomodules="zr zr2 $_novomodules" fi echores "$_zr" # mencoder requires (optional) those libs: libmp3lame if test "$_mencoder" != no ; then echocheck "libmp3lame" def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET' def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM' if test "$_mp3lame" = auto ; then _mp3lame=no cat > $TMPC <<EOF #include <lame/lame.h> 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; } EOF cc_check -lmp3lame $_ld_lm && tmp_run && _mp3lame=yes fi if test "$_mp3lame" = yes ; then def_mp3lame="#define CONFIG_MP3LAME" _ld_mp3lame=-lmp3lame _libs_mencoder="$_libs_mencoder $_ld_mp3lame" cat > $TMPC << EOF #include <lame/lame.h> int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; } EOF cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET" cat > $TMPC << EOF #include <lame/lame.h> int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; } EOF cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM" test "$_mp3lame_lavc" = auto && _mp3lame_lavc=yes if test "$_mp3lame_lavc" = yes ; then def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 1" _libavencoders="$_libavencoders LIBMP3LAME_ENCODER" _libs_mplayer="$_libs_mplayer $_ld_mp3lame" fi else _mp3lame_lavc=no def_mp3lame='#undef CONFIG_MP3LAME' def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 0" fi _res_comment="in libavcodec: $_mp3lame_lavc" echores "$_mp3lame" fi # test "$_mencoder" != no echocheck "mencoder" if test "$_mencoder" = yes ; then def_muxers='#define CONFIG_MUXERS 1' else # mpeg1video for vf_lavc, snow for vf_uspp and vf_mcdeint, png for vf_screenshot _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER" test "$_zlib" = yes && _libavencoders="$_libavencoders PNG_ENCODER" _libavmuxers="" fi echores "$_mencoder" echocheck "UnRAR executable" if test "$_unrar_exec" = auto ; then _unrar_exec="yes" mingw32 && _unrar_exec="no" fi if test "$_unrar_exec" = yes ; then def_unrar_exec='#define CONFIG_UNRAR_EXEC 1' else def_unrar_exec='#undef CONFIG_UNRAR_EXEC' fi echores "$_unrar_exec" echocheck "TV interface" if test "$_tv" = yes ; then def_tv='#define CONFIG_TV 1' _inputmodules="tv $_inputmodules" else _noinputmodules="tv $_noinputmodules" def_tv='#undef CONFIG_TV' fi echores "$_tv" if freebsd || netbsd || openbsd || dragonfly || bsdos ; then echocheck "*BSD BT848 bt8xx header" _ioctl_bt848_h=no for file in "machine/ioctl_bt848.h" \ "dev/bktr/ioctl_bt848.h" \ "dev/video/bktr/ioctl_bt848.h" \ "dev/ic/bt8xx.h" ; do cat > $TMPC <<EOF #include <sys/types.h> #include <sys/ioctl.h> #include <$file> int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; } EOF if cc_check ; then _ioctl_bt848_h=yes _ioctl_bt848_h_name="$file" break; fi done if test "$_ioctl_bt848_h" = yes ; then def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>" _res_comment="using $_ioctl_bt848_h_name" else def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME" fi echores "$_ioctl_bt848_h" echocheck "*BSD ioctl_meteor.h" _ioctl_meteor_h=no for file in "machine/ioctl_meteor.h" \ "dev/bktr/ioctl_meteor.h" \ "dev/video/bktr/ioctl_meteor.h" ; do cat > $TMPC <<EOF #include <sys/types.h> #include <$file> int main(void) { ioctl(0, METEORSINPUT, 0); return 0; } EOF if cc_check ; then _ioctl_meteor_h=yes _ioctl_meteor_h_name="$file" break; fi done if test "$_ioctl_meteor_h" = yes ; then def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>" _res_comment="using $_ioctl_meteor_h_name" else def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME" fi echores "$_ioctl_meteor_h" echocheck "*BSD BrookTree 848 TV interface" if test "$_tv_bsdbt848" = auto ; then _tv_bsdbt848=no if test "$_tv" = yes ; then cat > $TMPC <<EOF #include <sys/types.h> $def_ioctl_meteor_h_name $def_ioctl_bt848_h_name #ifdef IOCTL_METEOR_H_NAME #include IOCTL_METEOR_H_NAME #endif #ifdef IOCTL_BT848_H_NAME #include IOCTL_BT848_H_NAME #endif int main(void) { ioctl(0, METEORSINPUT, 0); ioctl(0, TVTUNER_GETFREQ, 0); return 0; } EOF cc_check && _tv_bsdbt848=yes fi fi if test "$_tv_bsdbt848" = yes ; then def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1' _inputmodules="tv-bsdbt848 $_inputmodules" else def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848' _noinputmodules="tv-bsdbt848 $_noinputmodules" fi echores "$_tv_bsdbt848" fi #if freebsd || netbsd || openbsd || dragonfly || bsdos echocheck "DirectShow TV interface" if test "$_tv_dshow" = auto ; then _tv_dshow=no if test "$_tv" = yes && win32 ; then cat > $TMPC <<EOF #include <ole2.h> int main(void) { void* p; CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p); return 0; } EOF cc_check -lole32 -luuid && _tv_dshow=yes fi fi if test "$_tv_dshow" = yes ; then _inputmodules="tv-dshow $_inputmodules" def_tv_dshow='#define CONFIG_TV_DSHOW 1' _ld_extra="$_ld_extra -lole32 -luuid" else _noinputmodules="tv-dshow $_noinputmodules" def_tv_dshow='#undef CONFIG_TV_DSHOW' fi echores "$_tv_dshow" echocheck "Video 4 Linux TV interface" if test "$_tv_v4l1" = auto ; then _tv_v4l1=no if test "$_tv" = yes && linux ; then cat > $TMPC <<EOF #include <stdlib.h> #include <linux/videodev.h> int main(void) { return 0; } EOF cc_check && _tv_v4l1=yes fi fi if test "$_tv_v4l1" = yes ; then _audio_input=yes _tv_v4l=yes def_tv_v4l='#define CONFIG_TV_V4L 1' def_tv_v4l1='#define CONFIG_TV_V4L1 1' _inputmodules="tv-v4l $_inputmodules" else _noinputmodules="tv-v4l1 $_noinputmodules" def_tv_v4l='#undef CONFIG_TV_V4L' fi echores "$_tv_v4l1" echocheck "Video 4 Linux 2 TV interface" if test "$_tv_v4l2" = auto ; then _tv_v4l2=no if test "$_tv" = yes && linux ; then cat > $TMPC <<EOF #include <stdlib.h> #include <linux/types.h> #include <linux/videodev2.h> int main(void) { return 0; } EOF cc_check && _tv_v4l2=yes fi fi if test "$_tv_v4l2" = yes ; then _audio_input=yes _tv_v4l=yes def_tv_v4l='#define CONFIG_TV_V4L 1' def_tv_v4l2='#define CONFIG_TV_V4L2 1' _inputmodules="tv-v4l2 $_inputmodules" else _noinputmodules="tv-v4l2 $_noinputmodules" def_tv_v4l2='#undef CONFIG_TV_V4L2' fi echores "$_tv_v4l2" echocheck "TV teletext interface" if test "$_tv_teletext" = auto ; then _tv_teletext=no if test "$_freetype" = yes && test "$_pthreads" = yes; then if test "$_tv_v4l2" = yes || test "$_v4l" = yes || test "$_tv_dshow" = yes; then _tv_teletext=yes fi fi fi if test "$_tv_teletext" = yes ; then def_tv_teletext='#define CONFIG_TV_TELETEXT 1' _inputmodules="tv-teletext $_inputmodules" else _noinputmodules="tv-teletext $_noinputmodules" def_tv_teletext='#undef CONFIG_TV_TELETEXT' fi echores "$_tv_teletext" echocheck "Radio interface" if test "$_radio" = yes ; then def_radio='#define CONFIG_RADIO 1' _inputmodules="radio $_inputmodules" if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then _radio_capture=no fi if test "$_radio_capture" = yes ; then _audio_input=yes def_radio_capture="#define CONFIG_RADIO_CAPTURE 1" else def_radio_capture="#undef CONFIG_RADIO_CAPTURE" fi else _noinputmodules="radio $_noinputmodules" def_radio='#undef CONFIG_RADIO' def_radio_capture="#undef CONFIG_RADIO_CAPTURE" _radio_capture=no fi echores "$_radio" echocheck "Capture for Radio interface" echores "$_radio_capture" echocheck "Video 4 Linux 2 Radio interface" if test "$_radio_v4l2" = auto ; then _radio_v4l2=no if test "$_radio" = yes && linux ; then cat > $TMPC <<EOF #include <stdlib.h> #include <linux/types.h> #include <linux/videodev2.h> int main(void) { return 0; } EOF cc_check && _radio_v4l2=yes fi fi if test "$_radio_v4l2" = yes ; then def_radio_v4l2='#define CONFIG_RADIO_V4L2 1' else def_radio_v4l2='#undef CONFIG_RADIO_V4L2' fi echores "$_radio_v4l2" echocheck "Video 4 Linux Radio interface" if test "$_radio_v4l" = auto ; then _radio_v4l=no if test "$_radio" = yes && linux ; then cat > $TMPC <<EOF #include <stdlib.h> #include <linux/videodev.h> int main(void) { return 0; } EOF cc_check && _radio_v4l=yes fi fi if test "$_radio_v4l" = yes ; then def_radio_v4l='#define CONFIG_RADIO_V4L 1' else def_radio_v4l='#undef CONFIG_RADIO_V4L' fi echores "$_radio_v4l" if freebsd || netbsd || openbsd || dragonfly || bsdos \ && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then echocheck "*BSD BrookTree 848 Radio interface" _radio_bsdbt848=no cat > $TMPC <<EOF #include <sys/types.h> $def_ioctl_bt848_h_name #ifdef IOCTL_BT848_H_NAME #include IOCTL_BT848_H_NAME #endif int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; } EOF cc_check && _radio_bsdbt848=yes echores "$_radio_bsdbt848" fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848 if test "$_radio_bsdbt848" = yes ; then def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1' else def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848' fi if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \ test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then die "Radio driver requires BSD BT848, V4L or V4L2!" fi echocheck "Video 4 Linux 2 MPEG PVR interface" if test "$_pvr" = auto ; then _pvr=no if test "$_tv_v4l2" = yes && linux ; then cat > $TMPC <<EOF #include <stdlib.h> #include <inttypes.h> #include <linux/types.h> #include <linux/videodev2.h> int main(void) { struct v4l2_ext_controls ext; return 0; } EOF cc_check && _pvr=yes fi fi if test "$_pvr" = yes ; then def_pvr='#define CONFIG_PVR 1' _inputmodules="pvr $_inputmodules" else _noinputmodules="pvr $_noinputmodules" def_pvr='#undef CONFIG_PVR' fi echores "$_pvr" echocheck "ftp" if ! beos && test "$_ftp" = yes ; then def_ftp='#define CONFIG_FTP 1' _inputmodules="ftp $_inputmodules" else _noinputmodules="ftp $_noinputmodules" def_ftp='#undef CONFIG_FTP' fi echores "$_ftp" echocheck "vstream client" if test "$_vstream" = auto ; then _vstream=no cat > $TMPC <<EOF #include <vstream-client.h> void vstream_error(const char *format, ... ) {} int main(void) { vstream_start(); return 0; } EOF cc_check -lvstream-client && _vstream=yes fi if test "$_vstream" = yes ; then def_vstream='#define CONFIG_VSTREAM 1' _inputmodules="vstream $_inputmodules" _ld_extra="$_ld_extra -lvstream-client" else _noinputmodules="vstream $_noinputmodules" def_vstream='#undef CONFIG_VSTREAM' fi echores "$_vstream" echocheck "OSD menu" if test "$_menu" = yes ; then def_menu='#define CONFIG_MENU 1' test $_dvbin = "yes" && _menu_dvbin=yes else def_menu='#undef CONFIG_MENU' _menu_dvbin=no fi echores "$_menu" echocheck "Subtitles sorting" if test "$_sortsub" = yes ; then def_sortsub='#define CONFIG_SORTSUB 1' else def_sortsub='#undef CONFIG_SORTSUB' fi echores "$_sortsub" echocheck "XMMS inputplugin support" if test "$_xmms" = yes ; then if ( xmms-config --version ) >/dev/null 2>&1 ; then _xmmsplugindir=`xmms-config --input-plugin-dir` _xmmslibdir=`xmms-config --exec-prefix`/lib else _xmmsplugindir=/usr/lib/xmms/Input _xmmslibdir=/usr/lib fi def_xmms='#define CONFIG_XMMS 1' if darwin ; then _ld_extra="$_ld_extra ${_xmmslibdir}/libxmms.dylib" else _ld_extra="$_ld_extra ${_xmmslibdir}/libxmms.so.1 -export-dynamic" fi else def_xmms='#undef CONFIG_XMMS' fi echores "$_xmms" # --------------- GUI specific tests begin ------------------- echocheck "GUI" echo "$_gui" if test "$_gui" = yes ; then # Required libraries if test "$_libavcodec" != yes || ! echo $_libavdecoders | grep -q PNG_DECODER ; then die "The GUI requires libavcodec with PNG support (needs zlib)." fi test "$_freetype" = no && test "$_bitmap_font" = no && \ die "The GUI requires either FreeType or bitmap font support." if ! win32 ; then _gui_gtk=yes test "$_x11" != yes && die "X11 support required for GUI compilation." echocheck "XShape extension" if test "$_xshape" = auto ; then _xshape=no cat > $TMPC << EOF #include <X11/Xlib.h> #include <X11/Xproto.h> #include <X11/Xutil.h> #include <X11/extensions/shape.h> #include <stdlib.h> int main(void) { char *name = ":0.0"; Display *wsDisplay; int exitvar = 0; int eventbase, errorbase; if (getenv("DISPLAY")) name=getenv("DISPLAY"); wsDisplay=XOpenDisplay(name); if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase)) exitvar=1; XCloseDisplay(wsDisplay); return exitvar; } EOF cc_check -lXext && _xshape=yes fi if test "$_xshape" = yes ; then def_xshape='#define CONFIG_XSHAPE 1' else die "The GUI requires the X11 extension XShape (which was not found)." fi echores "$_xshape" #Check for GTK if test "$_gtk1" = no ; then #Check for GTK2 : echocheck "GTK+ version" if $_pkg_config gtk+-2.0 --exists ; then _gtk=`$_pkg_config gtk+-2.0 --modversion 2>/dev/null` _inc_extra="$_inc_extra `$_pkg_config gtk+-2.0 --cflags 2>/dev/null`" _libs_mplayer="$_libs_mplayer `$_pkg_config gtk+-2.0 --libs 2>/dev/null`" echores "$_gtk" # Check for GLIB2 if $_pkg_config glib-2.0 --exists ; then echocheck "glib version" _glib=`$_pkg_config glib-2.0 --modversion 2>/dev/null` _libs_mplayer="$_libs_mplayer `$_pkg_config glib-2.0 --libs 2>/dev/null`" echores "$_glib" def_gui='#define CONFIG_GUI 1' def_gtk2='#define CONFIG_GTK2 1' else _gtk1=yes echo "GLIB-2 devel packages were not found, trying GTK 1.2" fi else echo "GTK-2 devel packages were not found, trying GTK 1.2" _gtk1=yes fi fi if test "$_gtk1" = yes ; then # Check for old GTK (1.2.x) echocheck "GTK version" if test -z "$_gtkconfig" ; then if ( gtk-config --version ) >/dev/null 2>&1 ; then _gtkconfig="gtk-config" elif ( gtk12-config --version ) >/dev/null 2>&1 ; then _gtkconfig="gtk12-config" else die "The GUI requires GTK devel packages (which were not found)." fi fi _gtk=`$_gtkconfig --version 2>&1` _inc_extra="$_inc_extra `$_gtkconfig --cflags 2>&1`" _libs_mplayer="$_libs_mplayer `$_gtkconfig --libs 2>&1`" echores "$_gtk (using $_gtkconfig)" # Check for GLIB echocheck "glib version" if test -z "$_glibconfig" ; then if ( glib-config --version ) >/dev/null 2>&1 ; then _glibconfig="glib-config" elif ( glib12-config --version ) >/dev/null 2>&1 ; then _glibconfig="glib12-config" else die "The GUI requires GLIB devel packages (which were not found)" fi fi _glib=`$_glibconfig --version 2>&1` _libs_mplayer="$_libs_mplayer `$_glibconfig --libs 2>&1`" echores "$_glib (using $_glibconfig)" def_gui='#define CONFIG_GUI 1' def_gtk2='#undef CONFIG_GTK2' fi else #if ! win32 _gui_win32=yes _libs_mplayer="$_libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32" def_gui='#define CONFIG_GUI 1' def_gtk2='#undef CONFIG_GTK2' fi #if ! win32 else #if test "$_gui" def_gui='#undef CONFIG_GUI' def_gtk2='#undef CONFIG_GTK2' fi #if test "$_gui" # --------------- GUI specific tests end ------------------- if test "$_charset" = "noconv" ; then _charset="" fi if test "$_charset" ; then def_charset="#define MSG_CHARSET \"$_charset\"" else def_charset="#undef MSG_CHARSET" fi if test -n "$_charset" && test "$_charset" != "UTF-8" ; then echocheck "iconv program" iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG" if test "$?" -ne 0 ; then echores "no" echo "No working iconv program found, use " echo "--charset=UTF-8 to continue anyway." echo "If you also have problems with iconv library functions use --charset=noconv." echo "Messages in the GTK-2 interface will be broken then." exit 1 else echores "yes" fi fi ############################################################################# echocheck "automatic gdb attach" if test "$_crash_debug" = yes ; then def_crash_debug='#define CONFIG_CRASH_DEBUG 1' else def_crash_debug='#undef CONFIG_CRASH_DEBUG' _crash_debug=no fi echores "$_crash_debug" echocheck "compiler support for noexecstack" cat > $TMPC <<EOF int main(void) { return 0; } EOF if cc_check -Wl,-z,noexecstack ; then _ld_extra="-Wl,-z,noexecstack $_ld_extra" echores "yes" else echores "no" fi # Dynamic linking flags # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly) _ld_dl_dynamic='' freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic' if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 ; then _ld_dl_dynamic='-rdynamic' fi _ld_extra="$_ld_extra $_ld_pthread $_ld_dl $_ld_dl_dynamic" bsdos && _ld_extra="$_ld_extra -ldvd" (netbsd || openbsd) && x86_32 && _ld_extra="$_ld_extra -li386" def_debug='#undef MP_DEBUG' test "$_debug" != "" && def_debug='#define MP_DEBUG 1' echocheck "joystick" def_joystick='#undef CONFIG_JOYSTICK' if test "$_joystick" = yes ; then if linux ; then # TODO add some check def_joystick='#define CONFIG_JOYSTICK 1' else _joystick="no" _res_comment="unsupported under $system_name" fi fi echores "$_joystick" echocheck "lirc" if test "$_lirc" = auto ; then _lirc=no cat > $TMPC <<EOF #include <lirc/lirc_client.h> int main(void) { return 0; } EOF cc_check -llirc_client && _lirc=yes fi if test "$_lirc" = yes ; then def_lirc='#define CONFIG_LIRC 1' _ld_extra="$_ld_extra -llirc_client" else def_lirc='#undef CONFIG_LIRC' fi echores "$_lirc" echocheck "lircc" if test "$_lircc" = auto ; then _lircc=no cat > $TMPC <<EOF #include <lirc/lircc.h> int main(void) { return 0; } EOF cc_check -llircc && _lircc=yes fi if test "$_lircc" = yes ; then def_lircc='#define CONFIG_LIRCC 1' _ld_extra="$_ld_extra -llircc" else def_lircc='#undef CONFIG_LIRCC' fi echores "$_lircc" if arm; then # Detect maemo development platform libraries availability (http://www.maemo.org), # they are used when run on Nokia 770|8x0 echocheck "maemo (Nokia 770|8x0)" if test "$_maemo" = auto ; then _maemo=no cat > $TMPC << EOF #include <libosso.h> int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; } EOF cc_check `$_pkg_config --cflags --libs libosso 2>/dev/null` && _maemo=yes fi if test "$_maemo" = yes ; then def_maemo='#define CONFIG_MAEMO 1' _inc_extra="$_inc_extra `$_pkg_config --cflags libosso`" _ld_extra="$_ld_extra `$_pkg_config --libs libosso` -lXsp" else def_maemo='#undef CONFIG_MAEMO' fi echores "$_maemo" fi ############################################################################# # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate # the OMF format needs to come after the 'extern symbol prefix' check, which # uses nm. if os2 ; then _ld_extra="$_ld_extra -Zomf -Zstack 16384 -Zbin-files -Zargs-wild" fi # linker paths should be the same for mencoder and mplayer _ld_tmp="" for I in $_libs_mplayer ; do _tmp=`echo $I | sed -e 's/^-L.*$//'` if test -z "$_tmp" ; then _ld_extra="$_ld_extra $I" else _ld_tmp="$_ld_tmp $I" fi done _libs_mplayer=$_ld_tmp ############################################################################# if darwin ; then CFLAGS="$CFLAGS -mdynamic-no-pic -falign-loops=16 -shared-libgcc" if [ "$_cc_major" = 3 ] && [ "$_cc_minor" -lt 1 ]; then CFLAGS="$CFLAGS -no-cpp-precomp" fi fi if amigaos ; then CFLAGS="$CFLAGS -DNEWLIB -D__USE_INLINE__" fi # Thread support if linux ; then CFLAGS="$CFLAGS -D_REENTRANT" elif freebsd || netbsd || openbsd || bsdos ; then # FIXME bsd needs this so maybe other OS'es CFLAGS="$CFLAGS -D_THREAD_SAFE" fi # 64 bit file offsets? if test "$_largefiles" = yes || freebsd ; then CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then # dvdread support requires this (for off64_t) CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE" fi fi CXXFLAGS=" $CFLAGS -D__STDC_LIMIT_MACROS" cat > $TMPC << EOF int main(void) { return 0; } EOF if test "$cc_vendor" = "gnu" ; then cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS" cc_check -Wdeclaration-after-statement && CFLAGS="-Wdeclaration-after-statement $CFLAGS" cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS" cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS" cc_check -Wundef && CFLAGS="-Wundef $CFLAGS" else CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS" fi cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer" # This must be the last test to be performed. Any other tests following it # could fail due to linker errors. libdvdnavmini is intentionally not linked # against libdvdread (to permit MPlayer to use its own copy of the library). # So any compilation using the flags added here but not linking against # libdvdread can fail. echocheck "DVD support (libdvdnav)" dvdnav_internal=no if test "$_dvdnav" = auto ; then if test "$_dvdread_internal" = yes ; then _dvdnav=yes dvdnav_internal=yes _res_comment="internal" else $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no fi fi if test "$_dvdnav" = auto ; then cat > $TMPC <<EOF #include <inttypes.h> #include <dvdnav/dvdnav.h> int main(void) { dvdnav_t *dvd=0; return 0; } EOF _dvdnav=no _dvdnavdir=`$_dvdnavconfig --cflags` _dvdnavlibs=`$_dvdnavconfig --libs` cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes fi if test "$_dvdnav" = yes ; then _largefiles=yes def_dvdnav='#define CONFIG_DVDNAV 1' if test "$dvdnav_internal" = yes ; then _inc_extra="$_inc_extra -Ilibdvdnav" _inputmodules="dvdnav(internal) $_inputmodules" else _inc_extra="$_inc_extra `$_dvdnavconfig --cflags`" _ld_extra="$_ld_extra `$_dvdnavconfig --minilibs`" _inputmodules="dvdnav $_inputmodules" fi else def_dvdnav='#undef CONFIG_DVDNAV' _noinputmodules="dvdnav $_noinputmodules" fi echores "$_dvdnav" # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check). # Read dvdnav comment above. ############################################################################# echo "Creating config.mak" cat > config.mak << EOF # -------- Generated by configure ----------- # Ensure that locale settings do not interfere with shell commands. export LC_ALL = C CHARSET = $_charset DOC_LANG = $doc_lang DOC_LANGS = $doc_langs DOC_LANG_ALL = $doc_lang_all MAN_LANG = $man_lang MAN_LANGS = $man_langs MAN_LANG_ALL = $man_lang_all prefix = \$(DESTDIR)$_prefix BINDIR = \$(DESTDIR)$_bindir DATADIR = \$(DESTDIR)$_datadir LIBDIR = \$(DESTDIR)$_libdir MANDIR = \$(DESTDIR)$_mandir CONFDIR = \$(DESTDIR)$_confdir AR = $_ar CC = $_cc CXX = $_cc HOST_CC = $_host_cc YASM = $_yasm INSTALL = $_install INSTALLSTRIP = $_install_strip RANLIB = $_ranlib WINDRES = $_windres EXTRA_INC = $_inc_extra EXTRAXX_INC = $_inc_extra $_inc_extraxx CFLAGS = $CFLAGS \$(EXTRA_INC) OPTFLAGS = $CFLAGS \$(EXTRA_INC) CXXFLAGS = $CXXFLAGS \$(EXTRAXX_INC) CFLAGS_DHAHELPER = $cflags_dhahelper CFLAGS_FAAD_FIXED = $cflags_faad_fixed CFLAGS_LIBDVDCSS = $cflags_libdvdcss CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer CFLAGS_STACKREALIGN = $cflags_stackrealign CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper CFLAGS_TREMOR_LOW = $cflags_tremor_low YASMFLAGS = $YASMFLAGS EXTRALIBS = $_extra_libs EXTRA_LIB = $_ld_extra $_ld_static $_ld_lm EXTRALIBS_MPLAYER = $_libs_mplayer EXTRALIBS_MENCODER = $_libs_mencoder DEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.h,\$^) | sed "s,[0-9a-z._-]*: \(\$(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&," MPDEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.xpm,\$(filter-out %.h,$^)) | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&," -e "s,\(.*\)\.o: ,\1.d &," MPDEPEND_CMD_CXX = \$(CC) -MM \$(CXXFLAGS) \$(filter-out %.hh,\$(filter-out %.h,$^)) | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&," -e "s,\(.*\)\.o: ,\1.d &," GETCH = $_getch HELP_FILE = $_mp_help TIMER = $_timer EXESUF = $_exesuf EXESUFS_ALL = .exe $_target_arch $_target_arch_x86 `echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/'` MENCODER = $_mencoder MPLAYER = $_mplayer NEED_GETTIMEOFDAY = $_need_gettimeofday NEED_GLOB = $_need_glob NEED_MMAP = $_need_mmap NEED_SETENV = $_need_setenv NEED_SHMEM = $_need_shmem NEED_STRSEP = $_need_strsep NEED_SWAB = $_need_swab NEED_VSSCANF = $_need_vsscanf # features 3DFX = $_3dfx AA = $_aa ALSA1X = $_alsa1x ALSA9 = $_alsa9 ALSA5 = $_alsa5 APPLE_IR = $_apple_ir APPLE_REMOTE = $_apple_remote ARTS = $_arts AUDIO_INPUT = $_audio_input BITMAP_FONT = $_bitmap_font BL = $_bl CACA = $_caca CDDA = $_cdda CDDB = $_cddb COREAUDIO = $_coreaudio COREVIDEO = $_corevideo DFBMGA = $_dfbmga DGA = $_dga DIRECT3D = $_direct3d DIRECTFB = $_directfb DIRECTX = $_directx DVBIN = $_dvbin DVDNAV = $_dvdnav DVDNAV_INTERNAL = $dvdnav_internal DVDREAD = $_dvdread DVDREAD_INTERNAL = $_dvdread_internal DXR2 = $_dxr2 DXR3 = $_dxr3 ESD = $_esd FAAC=$_faac FAAD = $_faad FAAD_INTERNAL = $_faad_internal FASTMEMCPY = $_fastmemcpy FBDEV = $_fbdev FREETYPE = $_freetype FTP = $_ftp GIF = $_gif GGI = $_ggi GL = $_gl GL_WIN32 = $_gl_win32 GUI = $_gui GUI_GTK = $_gui_gtk GUI_WIN32 = $_gui_win32 HAVE_POSIX_SELECT = $_posix_select HAVE_SYS_MMAN_H = $_mman IVTV = $_ivtv JACK = $_jack JOYSTICK = $_joystick JPEG = $_jpeg LADSPA = $_ladspa LIBA52 = $_liba52 LIBA52_INTERNAL = $_liba52_internal LIBASS = $_ass LIBDCA = $_libdca LIBDV = $_libdv LIBDVDCSS_INTERNAL = $_libdvdcss_internal LIBLZO = $_liblzo LIBMAD = $_mad LIBMENU = $_menu LIBMENU_DVBIN = $_menu_dvbin LIBMPEG2 = $_libmpeg2 LIBNEMESI = $_nemesi LIBNUT = $_libnut LIBSMBCLIENT = $_smb LIBTHEORA = $_theora LIBVORBIS = $_vorbis LIRC = $_lirc LIVE555 = $_live MACOSX_BUNDLE = $_macosx_bundle MACOSX_FINDER = $_macosx_finder MD5SUM = $_md5sum MGA = $_mga MNG = $_mng MP3LAME = $_mp3lame MP3LIB = $_mp3lib MUSEPACK = $_musepack NAS = $_nas NATIVE_RTSP = $_native_rtsp NETWORK = $_network OPENAL = $_openal OSS = $_ossaudio PE_EXECUTABLE = $_pe_executable PNG = $_png PNM = $_pnm PRIORITY = $_priority PULSE = $_pulse PVR = $_pvr QTX_CODECS = $_qtx QTX_CODECS_WIN32 = $_qtx_codecs_win32 QTX_EMULATION = $_qtx_emulation QUARTZ = $_quartz RADIO=$_radio RADIO_CAPTURE=$_radio_capture REAL_CODECS = $_real S3FB = $_s3fb SDL = $_sdl SPEEX = $_speex STREAM_CACHE = $_stream_cache SGIAUDIO = $_sgiaudio SUNAUDIO = $_sunaudio SVGA = $_svga TDFXFB = $_tdfxfb TDFXVID = $_tdfxvid TGA = $_tga TOOLAME=$_toolame TREMOR_INTERNAL = $_tremor_internal TV = $_tv TV_BSDBT848 = $_tv_bsdbt848 TV_DSHOW = $_tv_dshow TV_TELETEXT = $_tv_teletext TV_V4L = $_tv_v4l TV_V4L1 = $_tv_v4l1 TV_V4L2 = $_tv_v4l2 TWOLAME=$_twolame UNRAR_EXEC = $_unrar_exec V4L2 = $_v4l2 VCD = $_vcd VDPAU = $_vdpau VESA = $_vesa VIDIX = $_vidix VIDIX_PCIDB = $_vidix_pcidb_val VIDIX_CYBERBLADE=$_vidix_drv_cyberblade VIDIX_IVTV=$_vidix_drv_ivtv VIDIX_MACH64=$_vidix_drv_mach64 VIDIX_MGA=$_vidix_drv_mga VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2 VIDIX_NVIDIA=$_vidix_drv_nvidia VIDIX_PM2=$_vidix_drv_pm2 VIDIX_PM3=$_vidix_drv_pm3 VIDIX_RADEON=$_vidix_drv_radeon VIDIX_RAGE128=$_vidix_drv_rage128 VIDIX_S3=$_vidix_drv_s3 VIDIX_SH_VEU=$_vidix_drv_sh_veu VIDIX_SIS=$_vidix_drv_sis VIDIX_UNICHROME=$_vidix_drv_unichrome VSTREAM = $_vstream WII = $_wii WIN32DLL = $_win32dll WIN32WAVEOUT = $_win32waveout WIN32_EMULATION = $_win32_emulation WINVIDIX = $winvidix X11 = $_x11 X264 = $_x264 XANIM_CODECS = $_xanim XMGA = $_xmga XMMS_PLUGINS = $_xmms XV = $_xv XVID4 = $_xvid XVIDIX = $xvidix XVMC = $_xvmc YUV4MPEG = $_yuv4mpeg ZR = $_zr # FFmpeg LIBAVUTIL = $_libavutil LIBAVUTIL_A = $_libavutil_a LIBAVUTIL_SO = $_libavutil_so LIBAVCODEC = $_libavcodec LIBAVCODEC_A = $_libavcodec_a LIBAVCODEC_SO = $_libavcodec_so LIBAVFORMAT = $_libavformat LIBAVFORMAT_A = $_libavformat_a LIBAVFORMAT_SO = $_libavformat_so LIBPOSTPROC = $_libpostproc LIBPOSTPROC_A = $_libpostproc_a LIBPOSTPROC_SO = $_libpostproc_so LIBSWSCALE = $_libswscale LIBSWSCALE_A = $_libswscale_a LIBSWSCALE_SO = $_libswscale_so BUILD_STATIC=yes SRC_PATH=.. BUILD_ROOT=.. LIBPREF=lib LIBSUF=.a LIBNAME=\$(LIBPREF)\$(NAME)\$(LIBSUF) # Some FFmpeg codecs depend on these. Enable them unconditionally for now. CONFIG_AANDCT=yes CONFIG_FFT=yes CONFIG_FFT_MMX=$fft_mmx CONFIG_GOLOMB=yes CONFIG_MDCT=yes CONFIG_RDFT=yes CONFIG_BZLIB=$bzlib CONFIG_ENCODERS=yes CONFIG_GPL=yes CONFIG_LIBAMR=$_libamr CONFIG_LIBAMR_NB=$_libamr_nb CONFIG_LIBAMR_WB=$_libamr_wb CONFIG_LIBDIRAC=$_libdirac_lavc CONFIG_LIBFAAC=$_faac_lavc CONFIG_LIBMP3LAME=$_mp3lame_lavc CONFIG_LIBSCHROEDINGER=$_libschroedinger_lavc CONFIG_LIBVORBIS=$_libvorbis CONFIG_LIBX264=$_x264_lavc CONFIG_LIBXVID=$_xvid_lavc CONFIG_MLIB = $_mlib CONFIG_MUXERS=$_mencoder CONFIG_POSTPROC = yes # Prevent building libavcodec/imgresample.c with conflicting symbols CONFIG_SWSCALE=yes CONFIG_VDPAU=$_vdpau CONFIG_XVMC=$_xvmc CONFIG_ZLIB=$_zlib HAVE_PTHREADS = $_pthreads HAVE_W32THREADS = $_w32threads HAVE_YASM = $_have_yasm `echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'` `echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'` `echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'` `echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'` `echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'` `echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'` EOF ############################################################################# ff_config_enable () { _nprefix=$3; test -z "$_nprefix" && _nprefix='CONFIG' for part in $1; do if ` echo $2 | grep -q -E "(^| )$part($| )" `; then echo "#define ${_nprefix}_$part 1" else echo "#define ${_nprefix}_$part 0" fi done } echo "Creating config.h" cat > $TMPH << EOF /*---------------------------------------------------------------------------- ** This file has been automatically generated by configure any changes in it ** will be lost when you run configure again. ** Instead of modifying definitions here, use the --enable/--disable options ** of the configure script! See ./configure --help for details. *---------------------------------------------------------------------------*/ #ifndef MPLAYER_CONFIG_H #define MPLAYER_CONFIG_H /* Undefine this if you do not want to select mono audio (left or right) with a stereo MPEG layer 2/3 audio stream. The command line option -stereo has three possible values (0 for stereo, 1 for left-only, 2 for right-only), with 0 being the default. */ #define CONFIG_FAKE_MONO 1 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */ #define MAX_OUTBURST 65536 /* set up audio OUTBURST. Do not change this! */ #define OUTBURST 512 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */ #undef FAST_OSD #undef FAST_OSD_TABLE /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */ #define MPEG12_POSTPROC 1 #define ATTRIBUTE_ALIGNED_MAX 16 #define CONFIGURATION "$_configuration" #define MPLAYER_DATADIR "$_datadir" #define MPLAYER_CONFDIR "$_confdir" #define MPLAYER_LIBDIR "$_libdir" /* definitions needed by included libraries */ #define HAVE_INTTYPES_H 1 /* libmpeg2 + FFmpeg */ $def_fast_inttypes /* libdvdcss */ #define HAVE_ERRNO_H 1 /* libdvdcss + libdvdread */ #define HAVE_LIMITS_H 1 /* libdvdcss + libfaad2 */ #define HAVE_UNISTD_H 1 /* libfaad2 + libdvdread */ #define STDC_HEADERS 1 #define HAVE_MEMCPY 1 /* libfaad2 */ #define HAVE_STRING_H 1 #define HAVE_STRINGS_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 /* libdvdnav */ #define READ_CACHE_TRACE 0 /* libdvdread */ #define HAVE_DLFCN_H 1 /* system headers */ $def_alloca_h $def_alsa_asoundlib_h $def_altivec_h $def_malloc_h $def_mman_h $def_mman_has_map_failed $def_soundcard_h $def_sys_asoundlib_h $def_sys_soundcard_h $def_sys_sysinfo_h $def_termios_h $def_termios_sys_h $def_winsock2_h /* system functions */ $def_gethostbyname2 $def_gettimeofday $def_glob $def_langinfo $def_llrint $def_lrint $def_lrintf $def_map_memalign $def_memalign $def_nanosleep $def_posix_select $def_round $def_roundf $def_select $def_setenv $def_shm $def_strsep $def_swab $def_sysi86 $def_sysi86_iv $def_termcap $def_termios $def_truncf $def_vsscanf /* system-specific features */ $def_asmalign_pot $def_builtin_expect $def_dl $def_extern_prefix $def_iconv $def_kstat $def_macosx_bundle $def_macosx_finder $def_maemo $def_named_asm_args $def_priority $def_quicktime $def_restrict_keyword $def_rtc $def_unrar_exec /* configurable options */ $def_charset $def_crash_debug $def_debug $def_dynamic_plugins $def_fastmemcpy $def_menu $def_runtime_cpudetection $def_sighandler $def_sortsub $def_stream_cache $def_pthread_cache /* CPU stuff */ #define __CPU__ $iproc $def_words_endian `ff_config_enable "$_arch_all" "$_arch" "ARCH"` `ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE"` /* DVD/VCD/CD */ #define DEFAULT_CDROM_DEVICE "$default_cdrom_device" #define DEFAULT_DVD_DEVICE "$default_dvd_device" $def_bsdi_dvd $def_cddb $def_cdio $def_cdparanoia $def_cdrom $def_dvd $def_dvd_bsd $def_dvd_darwin $def_dvd_linux $def_dvd_openbsd $def_dvdio $def_dvdnav $def_dvdread $def_hpux_scsi_h $def_libcdio $def_sol_scsi_h $def_vcd /* codec libraries */ $def_faac $def_faad $def_faad_internal $def_liba52 $def_liba52_internal $def_libdca $def_libdv $def_liblzo $def_libmpeg2 $def_mad $def_mp3lame $def_mp3lame_preset $def_mp3lame_preset_medium $def_mp3lib $def_musepack $def_speex $def_theora $def_toolame $def_tremor $def_twolame $def_vorbis $def_x264 $def_xvid $def_zlib $def_libnut /* binary codecs */ $def_qtx $def_qtx_win32 $def_real $def_real_path $def_win32_loader $def_win32dll #define WIN32_PATH "$_win32codecsdir" $def_xanim $def_xanim_path $def_xmms #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir" /* GUI */ $def_gtk2 $def_gui $def_xshape /* Audio output drivers */ $def_alsa $def_alsa1x $def_alsa5 $def_alsa9 $def_arts $def_coreaudio $def_esd $def_esd_latency $def_jack $def_nas $def_openal $def_openal_h $def_ossaudio $def_ossaudio_devdsp $def_ossaudio_devmixer $def_pulse $def_sgiaudio $def_sunaudio $def_win32waveout $def_ladspa /* input */ $def_apple_ir $def_apple_remote $def_ioctl_bt848_h_name $def_ioctl_meteor_h_name $def_joystick $def_lirc $def_lircc $def_pvr $def_radio $def_radio_bsdbt848 $def_radio_capture $def_radio_v4l $def_radio_v4l2 $def_tv $def_tv_bsdbt848 $def_tv_dshow $def_tv_teletext $def_tv_v4l $def_tv_v4l1 $def_tv_v4l2 /* font stuff */ $def_ass $def_bitmap_font $def_enca $def_fontconfig $def_freetype $def_fribidi /* networking */ $def_closesocket $def_ftp $def_inet6 $def_inet_aton $def_inet_pton $def_live $def_nemesi $def_network $def_smb $def_socklen_t $def_vstream /* libvo options */ $def_3dfx $def_aa $def_bl $def_caca $def_corevideo $def_dfbmga $def_dga $def_dga1 $def_dga2 $def_direct3d $def_directfb $def_directfb_version $def_directx $def_dvb $def_dvb_head $def_dvbin $def_dxr2 $def_dxr3 $def_fbdev $def_ggi $def_ggiwmh $def_gif $def_gif_4 $def_gif_tvt_hack $def_gl $def_gl_win32 $def_ivtv $def_jpeg $def_md5sum $def_mga $def_mng $def_png $def_pnm $def_quartz $def_s3fb $def_sdl $def_sdlbuggy $def_svga $def_tdfxfb $def_tdfxvid $def_tga $def_v4l2 $def_vdpau $def_vesa $def_vidix $def_vidix_drv_cyberblade $def_vidix_drv_ivtv $def_vidix_drv_mach64 $def_vidix_drv_mga $def_vidix_drv_mga_crtc2 $def_vidix_drv_nvidia $def_vidix_drv_pm3 $def_vidix_drv_radeon $def_vidix_drv_rage128 $def_vidix_drv_s3 $def_vidix_drv_sh_veu $def_vidix_drv_sis $def_vidix_drv_unichrome $def_vidix_pfx $def_vm $def_wii $def_x11 $def_xdpms $def_xf86keysym $def_xinerama $def_xmga $def_xss $def_xv $def_xvmc $def_xvr100 $def_yuv4mpeg $def_zr /* FFmpeg */ $def_libavcodec $def_libavcodec_a $def_libavcodec_so $def_libavformat $def_libavformat_a $def_libavformat_so $def_libavutil $def_libavutil_a $def_libavutil_so $def_libpostproc $def_libpostproc_a $def_libpostproc_so $def_libswscale $def_libswscale_a $def_libswscale_so #define CONFIG_DECODERS 1 #define CONFIG_ENCODERS 1 #define CONFIG_DEMUXERS 1 $def_muxers $def_arpa_inet_h $def_bswap $def_bzlib $def_dcbzl $def_dos_paths $def_fast_64bit $def_fast_unaligned $def_libavcodec_mpegaudio_hp $def_memalign_hack $def_mlib $def_mkstemp $def_posix_memalign $def_pthreads $def_ten_operands $def_threads $def_yasm #define CONFIG_FASTDIV 0 #define CONFIG_FFSERVER 0 #define CONFIG_GPL 1 #define CONFIG_GRAY 0 #define CONFIG_HARDCODED_TABLES 0 #define CONFIG_LIBAMR_NB_FIXED 0 #define CONFIG_LIBVORBIS 0 #define CONFIG_POWERPC_PERF 0 #define CONFIG_SMALL 0 #define CONFIG_SWSCALE 1 #define HAVE_GETHRTIME 0 #define HAVE_INLINE_ASM 0 #define HAVE_POLL_H 1 #define HAVE_PPC4XX 0 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */ #define CONFIG_AANDCT 1 #define CONFIG_FFT 1 #define CONFIG_GOLOMB 1 #define CONFIG_MDCT 1 #define CONFIG_RDFT 1 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */ #define HAVE_EBX_AVAILABLE 1 #ifndef MP_DEBUG #define HAVE_EBP_AVAILABLE 1 #else #define HAVE_EBP_AVAILABLE 0 #endif /* External libraries used through libavcodec. */ $def_faac_lavc $def_libamr $def_libamr_nb $def_libamr_wb $def_libdirac_lavc $def_libschroedinger_lavc $def_mp3lame_lavc $def_x264_lavc $def_xvid_lavc `ff_config_enable "$_libavdecoders_all" "$_libavdecoders"` `ff_config_enable "$_libavencoders_all" "$_libavencoders"` `ff_config_enable "$_libavparsers_all" "$_libavparsers"` `ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers"` `ff_config_enable "$_libavmuxers_all" "$_libavmuxers"` `ff_config_enable "$_libavprotocols_all" "$_libavprotocols"` `ff_config_enable "$_libavbsfs_all" "$_libavbsfs"` #endif /* MPLAYER_CONFIG_H */ EOF # Do not overwrite an unchanged config.h to avoid superfluous rebuilds. cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h ############################################################################# cat << EOF Config files successfully generated by ./configure $_configuration ! Install prefix: $_prefix Data directory: $_datadir Config direct.: $_confdir Byte order: $_byte_order Optimizing for: $_optimizing Languages: Messages/GUI: $msg_lang Manual pages: $man_langs Enabled optional drivers: Input: $_inputmodules Codecs: $_codecmodules Audio output: $_aomodules Video output: $_vomodules Disabled optional drivers: Input: $_noinputmodules Codecs: $_nocodecmodules Audio output: $_noaomodules Video output: $_novomodules 'config.h' and 'config.mak' contain your configuration options. Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer compile *** DO NOT REPORT BUGS if you tweak these files *** 'make' will now compile MPlayer and 'make install' will install it. Note: On non-Linux systems you might need to use 'gmake' instead of 'make'. EOF if test "$_mtrr" = yes ; then echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)" echo fi if ! x86_32; then cat <<EOF NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your operating system ($system_name). You may encounter a few files that cannot be played due to missing open source video/audio codec support. EOF fi cat <<EOF Check $TMPLOG if you wonder why an autodetection failed (make sure development headers/packages are installed). NOTE: The --enable-* parameters unconditionally force options on, completely skipping autodetection. This behavior is unlike what you may be used to from autoconf-based configure scripts that can decide to override you. This greater level of control comes at a price. You may have to provide the correct compiler and linker flags yourself. If you used one of these options (except --enable-gui and similar ones that turn on internal features) and experience a compilation or linking failure, make sure you have passed the necessary compiler/linker flags to configure. If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html. EOF if test "$_warn_CFLAGS" = yes; then cat <<EOF MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you, but: *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** *** It is strongly recommended to let MPlayer choose the correct CFLAGS! To do so, execute 'CFLAGS= ./configure <options>' EOF fi # Last move: rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"