From d0a66dbd5d4bbcd66338a6fd3a27e6d00a22f317 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 14 May 2014 20:29:00 +0200 Subject: old-build: accidental rewrite This started as a bunch of smaller changes to make the old configure script maintainable with minimum effort. It ended up as complete rewrite, because at once point I started to like shell programming (I hope this sickness is curable), and I wanted to see how small I can make the configure script. The typical configure test is now 1 or 2 lines big, located in 1 or 2 places, instead of >15 lines and being spread over 5 or 6 places. The main "trick" is factoring the tests into a few generic, commonly needed tests, instead of writing everything manually. --- old-configure | 2460 +++++++++++---------------------------------------------- 1 file changed, 467 insertions(+), 1993 deletions(-) (limited to 'old-configure') diff --git a/old-configure b/old-configure index 1ac1e5db2a..819676ed6b 100755 --- a/old-configure +++ b/old-configure @@ -1,12 +1,8 @@ #! /bin/sh # -# Original version (C) 2000 Pontscho/fresh!mindworkz -# pontscho@makacs.poliod.hu -# -# History / Contributors: Check the Subversion log. -# +# Original version (C) 2000 Pontscho/fresh!mindworkz pontscho@makacs.poliod.hu # Cleanups all over the place (c) 2001 pl -# +# Rewritten for mpv in 2014. # # This configure script is *not* autoconf-based and has different semantics. # It attempts to autodetect all settings and options where possible. It is @@ -21,18 +17,6 @@ # # If you want to add a new check for $feature, look at the existing checks # and try to use helper functions where you can. -# -# 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 @@ -58,99 +42,29 @@ compile_check() { echo >> "$TMPLOG" cat "$source" >> "$TMPLOG" echo >> "$TMPLOG" - echo "$_cc $WARNFLAGS $WARN_CFLAGS $CFLAGS $source $extra_cflags $_ld_static $extra_ldflags $libs_mplayer -o $TMPEXE $@" >> "$TMPLOG" + echo "$_cc $OURCFLAGS $CFLAGS $source $extra_cflags $_ld_static $extra_ldflags $libs_mplayer -o $TMPEXE $@" >> "$TMPLOG" rm -f "$TMPEXE" - $_cc $WARNFLAGS $WARN_CFLAGS $CFLAGS "$source" $extra_cflags $_ld_static $extra_ldflags $libs_mplayer -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1 + $_cc $OURCFLAGS $CFLAGS "$source" $extra_cflags $_ld_static $extra_ldflags $libs_mplayer -o "$TMPEXE" $@ >> "$TMPLOG" 2>&1 TMPRES="$?" echo >> "$TMPLOG" echo >> "$TMPLOG" return "$TMPRES" } -cc_check() { - compile_check $TMPC $@ -} - cflag_check() { - cat > $TMPC << EOF -int main(void) { return 0; } -EOF - compile_check $TMPC $@ -} - -header_check() { - cat > $TMPC << EOF -#include <$1> -int main(void) { return 0; } -EOF - shift - compile_check $TMPC $@ -} - -return_check() { - cat > $TMPC << EOF -#include <$1> -int main(void) { return $2; } -EOF - shift 2 - compile_check $TMPC $@ + echo "int main(void) { return 0; }" > $TMPC + compile_check $TMPC $@ } statement_check() { - cat > $TMPC << EOF -#include <$1> -int main(void) { $2; return 0; } -EOF - shift - shift - compile_check $TMPC $@ -} - -define_statement_check() { - cat > $TMPC << EOF -#define $1 -#include <$2> -int main(void) { $3; return 0; } -EOF - shift 3 - compile_check $TMPC $@ -} - -return_statement_check() { - cat > $TMPC << EOF -#include <$1> -int main(void) { $2; return $3; } -EOF - shift 3 - compile_check $TMPC $@ -} - -# The following checks are special and should only be used with broken and -# non-selfsufficient headers that do not include all of their dependencies. - -header_check_broken() { - cat > $TMPC << EOF -#include <$1> -#include <$2> -int main(void) { return 0; } -EOF - shift - shift - compile_check $TMPC $@ -} - -statement_check_broken() { - cat > $TMPC << EOF -#include <$1> -#include <$2> -int main(void) { $3; return 0; } -EOF - shift 3 - compile_check $TMPC $@ + echo "" > $TMPC + for _header in $1 ; do echo "#include <$_header>" >> $TMPC ; done + echo "int main(void) { $2; return 0; }" >> $TMPC + shift 2 + compile_check $TMPC $@ } pkg_config_add() { - unset IFS # shell should not be used for programming echo >> "$TMPLOG" echo "$_pkg_config --cflags $@" >> "$TMPLOG" ctmp=$($_pkg_config --cflags "$@" 2>> "$TMPLOG") || return $? @@ -165,16 +79,12 @@ pkg_config_add() { libs_mplayer="$libs_mplayer $ltmp" } -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" + rm -f "$TMPEXE" "$TMPC" echo "Check \"$TMPLOG\" if you do not understand why it failed." exit 1 } @@ -187,16 +97,13 @@ echocheck() { # Use this to echo the results of a check echores() { - if test "$res_comment" ; then - res_comment="($res_comment)" - fi + test "$res_comment" && res_comment="($res_comment)" 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 @@ -204,6 +111,116 @@ case $(echo -n) in *) _echo_n='-n ' _echo_c= ;; # BSD echo esac +# setind $a b sets the variable named by the value of the variable a to b +setind() { eval "$1=\"\$2\"" ; } + +# Generate --enable-NAME/--disable-NAME options, set $1 to the option value. +# Since shell has no data structures, do a weird statemachine thing. +# Arguments: "_name"($1) "description"($2) "default"($3) +# If "default"($3) is empty, use "auto" +# Option name: a leading "_" in name is stripped, further "_" are changed to "-" +opt_yes_no() { + _name=$(echo "$1" | sed 's/^_//' | tr _ -) + _defval="$3" + test -z "$_defval" && _defval=auto + + case "$_opt_state_mode" in + init) + setind "$1" "$_defval" + ;; + help) + if test "$_defval" = yes || test "$_defval" = auto ; then + _defdesc=enable + test "$_defval" = auto && _defdesc=auto + printf " %-21s disable $2 [$_defdesc]\n" "--disable-$_name" + unset _defdesc + else + printf " %-21s enable $2 [disable]\n" "--enable-$_name" + fi + ;; + parse) + if test "$_opt_state_name" = "--enable-$_name" ; then + setind "$1" yes + _opt_state_known=yes + elif test "$_opt_state_name" = "--disable-$_name" ; then + setind "$1" no + _opt_state_known=yes + elif test "$_opt_state_name" = "--auto-$_name" ; then + setind "$1" auto + _opt_state_known=yes + fi + ;; + esac + unset _name + unset _defval +} + +options_state_machine() { + _opt_state_mode=$1 + _opt_state_name=$2 + _opt_state_known=no + + opt_yes_no _gl "OpenGL video output" + opt_yes_no _libguess "libguess" + opt_yes_no _terminfo "terminfo database for key codes" + opt_yes_no _termcap "termcap database for key codes" + opt_yes_no _termios "termios database for key codes" + opt_yes_no _iconv "iconv for encoding conversion" + opt_yes_no _lirc "LIRC (remote control) support" + opt_yes_no _joystick "joystick support" no + opt_yes_no _vm "X video mode extensions" + opt_yes_no _xf86keysym "support for multimedia keys" + opt_yes_no _dvb "DVB input" + opt_yes_no _tv "TV interface (TV/DVB grabbers)" yes + opt_yes_no _tv_v4l2 "Video4Linux2 TV interface" + opt_yes_no _libv4l2 "libv4l2" + opt_yes_no _pvr "Video4Linux2 MPEG PVR" + opt_yes_no _smb "Samba (SMB) input" + opt_yes_no _libquvi4 "libquvi 0.4.x" + opt_yes_no _libquvi9 "libquvi 0.9.x" + opt_yes_no _lcms2 "LCMS2 support" + opt_yes_no _vcd "VCD support" yes + opt_yes_no _bluray "Blu-ray support" + opt_yes_no _dvdread "libdvdread" + opt_yes_no _dvdnav "libdvdnav" + opt_yes_no _enca "ENCA charset oracle library" + opt_yes_no _libass "subtitle rendering with libass" + opt_yes_no _libpostproc "postprocess filter (vf_pp)" + opt_yes_no _libavdevice "libavdevice demuxers" + opt_yes_no _libavfilter "libavfilter" + opt_yes_no _vapoursynth "VapourSynth filter bridge" + opt_yes_no _jpeg "support for writing JPEG screenshots" + opt_yes_no _libcdio "libcdio support" + opt_yes_no _ffmpeg "skip FFmpeg/Libav autodetection" + opt_yes_no _ladspa "LADSPA plugin support" + opt_yes_no _libbs2b "libbs2b audio filter support" + opt_yes_no _mpg123 " libmpg123 MP3 decoding support" + opt_yes_no _libavresample "libavresample (preferred over libswresample)" + opt_yes_no _libswresample "libswresample" + opt_yes_no _caca "CACA video output" + opt_yes_no _sdl2 "SDL2 video and audio outputs" no + opt_yes_no _xv "Xv video output" + opt_yes_no _vdpau "VDPAU acceleration" + opt_yes_no _vaapi "VAAPI acceleration" + opt_yes_no _vm "XF86VidMode support (used for monitor FPS detection)" + opt_yes_no _xinerama "Xinerama support" + opt_yes_no _x11 "X11 video output" + opt_yes_no _wayland "Wayland video output" + opt_yes_no _xss "support for disabling screensaver via xss" + opt_yes_no _alsa "ALSA audio output" + opt_yes_no _ossaudio "OSS audio output" + opt_yes_no _rsound "RSound audio output" + opt_yes_no _sndio "sndio audio output" + opt_yes_no _pulse "Pulseaudio audio output" + opt_yes_no _portaudio "PortAudio audio output" + opt_yes_no _jack "JACK audio output" + opt_yes_no _openal "OpenAL audio output" + opt_yes_no _select "using select() on the audio device" yes + opt_yes_no _shm "X11/Xv shared memory" + opt_yes_no _lua "Lua scripting" + opt_yes_no _encoding "encoding functionality" yes + opt_yes_no _build_man "building manpage" +} show_help(){ cat << EOF @@ -218,102 +235,25 @@ Installation directories: --datadir=DIR directory for installing machine independent data files (skins, etc) [PREFIX/share/mpv] --mandir=DIR directory for installing man pages [PREFIX/share/man] - --docdir=DIR directory for installing docs [PREFIX/share/doc/mpv] --confdir=DIR directory for installing configuration files [PREFIX/etc/mpv] -Optional features: - --disable-encoding disable encoding functionality [enable] - --disable-lua disable Lua scripting support [autodetect] - --lua=LUA select Lua package which should be autodetected - Choices: 51 51deb 52 52deb luajit - --disable-libguess disable libguess [autodetect] - --enable-terminfo use terminfo database for key codes [autodetect] - --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] - --enable-lirc enable LIRC (remote control) support [autodetect] - --enable-joystick enable joystick support [disable] - --disable-vm disable X video mode extensions [autodetect] - --disable-xf86keysym disable support for multimedia keys [autodetect] - --disable-tv disable TV interface (TV/DVB grabbers) [enable] - --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect] - --disable-libv4l2 disable libv4l2 [autodetect] - --disable-pvr disable Video4Linux2 MPEG PVR [autodetect] - --enable-smb enable Samba (SMB) input [autodetect] - --disable-libquvi4 disable libquvi 0.4.x [autodetect] - --disable-libquvi9 disable libquvi 0.9.x [autodetect] - --enable-lcms2 enable LCMS2 support [autodetect] - --disable-vcd disable VCD support [autodetect] - --disable-bluray disable Blu-ray support [autodetect] - --disable-dvdread disable libdvdread [autodetect] - --disable-dvdnav disable libdvdnav [autodetect] - --disable-enca disable ENCA charset oracle library [autodetect] - --disable-libass disable subtitle rendering with libass [autodetect] - --disable-libass-osd disable OSD rendering with libass [autodetect] - --enable-rpath enable runtime linker path for extra libs [disabled] - --disable-libpostproc disable postprocess filter (vf_pp) [autodetect] - --disable-libavdevice disable libavdevice demuxers [autodetect] - --disable-libavfilter disable libavfilter [autodetect] - --disable-vapoursynth disable VapourSynth filter bridge [autodetect] - -Codecs: - --enable-jpeg enable JPEG input/output support [autodetect] - --enable-libcdio enable libcdio support [autodetect] - --enable-libav skip Libav autodetection [autodetect] - --disable-ladspa disable LADSPA plugin support [autodetect] - --disable-libbs2b disable libbs2b audio filter support [autodetect] - --disable-mpg123 disable libmpg123 MP3 decoding support [autodetect] - -Resampler: - --disable-libavresample check for libswresample only [autodetect] - -Video output: - --enable-gl enable OpenGL video output [autodetect] - --enable-caca enable CACA video output [autodetect] - --enable-sdl enable SDL audio output [disable] - --enable-sdl2 enable SDL 2.0+ audio and video output [disable] - --enable-xv enable Xv video output [autodetect] - --enable-vdpau enable VDPAU acceleration [autodetect] - --enable-vaapi enable VAAPI acceleration [autodetect] - --enable-vm enable XF86VidMode support [autodetect] - --enable-xinerama enable Xinerama support [autodetect] - --enable-x11 enable X11 video output [autodetect] - --enable-wayland enable Wayland video output [autodetect] - --disable-xss disable screensaver support via xss [autodetect] - -Audio output: - --disable-alsa disable ALSA audio output [autodetect] - --disable-ossaudio disable OSS audio output [autodetect] - --disable-rsound disable RSound audio output [autodetect] - --disable-sndio disable sndio audio output [autodetect] - --disable-pulse disable Pulseaudio audio output [autodetect] - --disable-portaudio disable PortAudio audio output [autodetect] - --disable-jack disable JACK audio output [autodetect] - --enable-openal enable OpenAL audio output [disable] - --disable-select disable using select() on the audio device [enable] - -Miscellaneous options: - --enable-cross-compile enable cross-compilation [disable] +Compilation options: --cc=COMPILER C compiler to build mpv [gcc] --pkg-config=PKGCONFIG pkg-config to find some libraries [pkg-config] - --target=PLATFORM target platform (i386-linux, arm-linux, etc) --enable-static build a statically linked binary - --with-install=PATH path to a custom install program - --disable-manpage do not build and install manpage [auto] - --disable-pdf do not build and install PDF manual [auto] - --disable-build-date do not include binary compile time - -Advanced options: - --enable-shm enable shm [autodetect] - --disable-debug compile-in debugging information [enable] - --disable-optimization compile without -O2 [enable] + --disable-debug compile-in debugging information [enable] + --disable-optimization compile without -O2 [enable] Use these options if autodetection fails: - --extra-cflags=FLAGS extra CFLAGS - --extra-ldflags=FLAGS extra LDFLAGS - --extra-libs=FLAGS extra linker flags - --extra-libs-mpv=FLAGS extra linker flags for mpv + --extra-cflags=FLAGS extra CFLAGS + --extra-ldflags=FLAGS extra LDFLAGS + --extra-libs=FLAGS extra linker flags + +Features: +EOF +options_state_machine help +cat << EOF 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 @@ -326,79 +266,12 @@ exit 0 # 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 -_install=install _pkg_config=auto _cc=auto test "$CC" && _cc="$CC" -_debug=-g _opt=-O2 -_cross_compile=no _prefix="/usr/local" -ffmpeg=auto -_encoding=yes -_disable_avresample=no -_x11=auto -_wayland=auto -_xss=auto -_xv=auto -_vdpau=auto -_vaapi=auto -_sdl=no -_sdl2=no -_jpeg=auto -_gl=auto -_aa=auto -_caca=auto -_dvb=auto -_iconv=auto -_ossaudio=auto -_rsound=auto -_pulse=auto -_portaudio=auto -_jack=auto -_openal=no -_libcdio=auto -_mpg123=auto -_ladspa=auto -_libbs2b=auto -_vcd=auto -_bluray=auto -_dvdread=auto -_dvdnav=auto -_lcms2=auto -_vapoursynth=auto -_xinerama=auto -_vm=auto -_xf86keysym=auto -_sndio=auto -_alsa=auto -_select=yes -_tv=yes -_tv_v4l2=auto -_libv4l2=auto -_pvr=auto -_smb=auto -_libquvi4=auto -_libquvi9=auto -_libguess=auto -_joystick=no -_lirc=auto -_terminfo=auto -_termcap=auto -_termios=auto -_shm=auto -_cdda=auto -_enca=auto -_ass=auto -_libass_osd=auto -lua=auto -libpostproc=auto -libavfilter=auto -libavdevice=auto -_stream_cache=yes -_build_man=auto -_build_pdf=auto -_build_date=yes +options_state_machine init for ac_option do case "$ac_option" in --help|-help|-h) @@ -413,17 +286,9 @@ for ac_option do --mandir=*) _mandir=$(echo $ac_option | cut -d '=' -f 2) ;; - --docdir=*) - _docdir=$(echo $ac_option | cut -d '=' -f 2) - ;; --confdir=*) _confdir=$(echo $ac_option | cut -d '=' -f 2) ;; - - --with-install=*) - _install=$(echo $ac_option | cut -d '=' -f 2 ) - ;; - --extra-cflags=*) extra_cflags="$extra_cflags $(echo $ac_option | cut -d '=' -f 2-)" ;; @@ -431,37 +296,20 @@ for ac_option do extra_ldflags="$extra_ldflags $(echo $ac_option | cut -d '=' -f 2-)" ;; --extra-libs=*) - extra_libs=$(echo $ac_option | cut -d '=' -f 2) - ;; - --extra-libs-mpv=*) libs_mplayer=$(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) ;; --pkg-config=*) _pkg_config=$(echo $ac_option | cut -d '=' -f 2) ;; - --enable-static) _ld_static='-static' ;; --disable-static) _ld_static='' ;; - --enable-debug) - _debug='-g' - ;; - --enable-debug=*) - _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2) - ;; - --disable-debug) - _debug= - ;; --enable-optimization) _opt='-O2' ;; @@ -471,577 +319,220 @@ for ac_option do --disable-optimization) _opt= ;; - --enable-cross-compile) _cross_compile=yes ;; - --disable-cross-compile) _cross_compile=no ;; - --enable-encoding) _encoding=yes ;; - --disable-encoding) _encoding=no ;; - --enable-wayland) _wayland=yes ;; - --disable-wayland) _wayland=no ;; - --enable-x11) _x11=yes ;; - --disable-x11) _x11=no ;; - --enable-xss) _xss=yes ;; - --disable-xss) _xss=no ;; - --enable-xv) _xv=yes ;; - --disable-xv) _xv=no ;; - --enable-vdpau) _vdpau=yes ;; - --disable-vdpau) _vdpau=no ;; - --enable-vaapi) _vaapi=yes ;; - --disable-vaapi) _vaapi=no ;; - --enable-sdl) _sdl=yes ;; - --disable-sdl) _sdl=no ;; - --enable-sdl2) _sdl2=yes ;; - --disable-sdl2) _sdl2=no ;; - --enable-jpeg) _jpeg=yes ;; - --disable-jpeg) _jpeg=no ;; - --enable-gl) _gl=yes ;; - --disable-gl) _gl=no ;; - --enable-caca) _caca=yes ;; - --disable-caca) _caca=no ;; - --enable-dvb) _dvb=yes ;; - --disable-dvb) _dvb=no ;; - --enable-iconv) _iconv=yes ;; - --disable-iconv) _iconv=no ;; - --enable-ossaudio) _ossaudio=yes ;; - --disable-ossaudio) _ossaudio=no ;; - --enable-rsound) _rsound=yes ;; - --disable-rsound) _rsound=no ;; - --enable-sndio) _sndio=yes ;; - --disable-sndio) _sndio=no ;; - --enable-pulse) _pulse=yes ;; - --disable-pulse) _pulse=no ;; - --enable-portaudio) _portaudio=yes ;; - --disable-portaudio) _portaudio=no ;; - --enable-jack) _jack=yes ;; - --disable-jack) _jack=no ;; - --enable-openal) _openal=auto ;; - --disable-openal) _openal=no ;; - --enable-libcdio) _libcdio=yes ;; - --disable-libcdio) _libcdio=no ;; - --enable-mpg123) _mpg123=yes ;; - --disable-mpg123) _mpg123=no ;; - --enable-ladspa) _ladspa=yes ;; - --disable-ladspa) _ladspa=no ;; - --enable-libbs2b) _libbs2b=yes ;; - --disable-libbs2b) _libbs2b=no ;; - --enable-vcd) _vcd=yes ;; - --disable-vcd) _vcd=no ;; - --enable-bluray) _bluray=yes ;; - --disable-bluray) _bluray=no ;; - --enable-dvdread) _dvdread=yes ;; - --disable-dvdread) _dvdread=no ;; - --enable-dvdnav) _dvdnav=yes ;; - --disable-dvdnav) _dvdnav=no ;; - --enable-lcms2) _lcms2=yes ;; - --disable-lcms2) _lcms2=no ;; - --enable-vapoursynth) _vapoursynth=yes ;; - --dsiable-vapoursynth)_vapoursynth=no ;; - --enable-xinerama) _xinerama=yes ;; - --disable-xinerama) _xinerama=no ;; - --enable-vm) _vm=yes ;; - --disable-vm) _vm=no ;; - --enable-xf86keysym) _xf86keysym=yes ;; - --disable-xf86keysym) _xf86keysym=no ;; - --enable-alsa) _alsa=yes ;; - --disable-alsa) _alsa=no ;; - --enable-tv) _tv=yes ;; - --disable-tv) _tv=no ;; - --enable-tv-v4l2) _tv_v4l2=yes ;; - --disable-tv-v4l2) _tv_v4l2=no ;; - --enable-libv4l2) _libv4l2=yes ;; - --disable-libv4l2) _libv4l2=no ;; - --enable-pvr) _pvr=yes ;; - --disable-pvr) _pvr=no ;; - --enable-smb) _smb=yes ;; - --disable-smb) _smb=no ;; - --enable-libquvi4) _libquvi4=yes ;; - --disable-libquvi4) _libquvi4=no ;; - --enable-libquvi9) _libquvi9=yes ;; - --disable-libquvi9) _libquvi9=no ;; - --enable-libguess) _libguess=yes ;; - --disable-libguess) _libguess=no ;; - --enable-joystick) _joystick=yes ;; - --disable-joystick) _joystick=no ;; - --enable-libav) ffmpeg=yes ;; - --disable-libavresample) _disable_avresample=yes ;; - --enable-libavresample) _disable_avresample=no ;; - - --enable-lua) lua=yes ;; - --disable-lua) lua=no ;; - --lua=*) lua_pkg=$(echo $ac_option | cut -d '=' -f 2) ;; - --enable-lirc) _lirc=yes ;; - --disable-lirc) _lirc=no ;; - --enable-terminfo) _terminfo=yes ;; - --disable-terminfo) _terminfo=no ;; - --enable-termcap) _termcap=yes ;; - --disable-termcap) _termcap=no ;; - --enable-termios) _termios=yes ;; - --disable-termios) _termios=no ;; - --enable-shm) _shm=yes ;; - --disable-shm) _shm=no ;; - --enable-select) _select=yes ;; - --disable-select) _select=no ;; - --enable-libass) _ass=yes ;; - --disable-libass) _ass=no ;; - --enable-libass-osd) _libass_osd=yes ;; - --disable-libass-osd) _libass_osd=no ;; - --enable-libpostproc) libpostproc=yes ;; - --disable-libpostproc) libpostproc=no ;; - --enable-libavdevice) libavdevice=auto ;; - --disable-libavdevice) libavdevice=no ;; - --enable-libavfilter) libavfilter=auto ;; - --disable-libavfilter) libavfilter=no ;; - - --enable-enca) _enca=yes ;; - --disable-enca) _enca=no ;; - - --enable-manpage) _build_man=yes ;; - --disable-manpage) _build_man=no ;; - --enable-pdf) _build_pdf=yes ;; - --disable-pdf) _build_pdf=no ;; - - --enable-build-date) _build_date=yes ;; - --disable-build-date) _build_date=no ;; *) - echo "Unknown parameter: $ac_option" >&2 - exit 1 + options_state_machine parse "$ac_option" + if test "$_opt_state_known" != yes ; then + echo "Unknown parameter: $ac_option" >&2 + exit 1 + fi ;; esac done -# Atmos: moved this here, to be correct, if --prefix is specified test -z "$_bindir" && _bindir="$_prefix/bin" test -z "$_mandir" && _mandir="$_prefix/share/man" -test -z "$_docdir" && _docdir="$_prefix/share/doc/mpv" test -z "$_confdir" && _confdir="$_prefix/etc/mpv" -for tmpdir in "$TMPDIR" "$TEMPDIR" "/tmp" ; do - test "$tmpdir" && break -done - -mplayer_tmpdir="$tmpdir/mpv-configure-$RANDOM-$$" -mkdir $mplayer_tmpdir || die "Unable to create tmpdir." +mplayer_tmpdir=$(mktemp -d --tmpdir mpv-configure-XXXX) +test -n "$mplayer_tmpdir" || die "Unable to create tmpdir." TMPLOG="config.log" rm -f "$TMPLOG" echo Parameters configure was run with: > "$TMPLOG" -if test -n "$CFLAGS" ; then - echo ${_echo_n} CFLAGS="'$CFLAGS' ${_echo_c}" >> "$TMPLOG" -fi -if test -n "$PKG_CONFIG_PATH" ; then - echo ${_echo_n} PKG_CONFIG_PATH="'$PKG_CONFIG_PATH' ${_echo_c}" >> "$TMPLOG" -fi -echo ./configure $configuration >> "$TMPLOG" +echo CFLAGS="'$CFLAGS'" PKG_CONFIG_PATH="'$PKG_CONFIG_PATH'" ./configure $configuration >> "$TMPLOG" echo >> "$TMPLOG" +TMPC="$mplayer_tmpdir/tmp.c" +TMPEXE="$mplayer_tmpdir/tmp" +CONFIG_MAK="$mplayer_tmpdir/config.mak" +CONFIG_H="$mplayer_tmpdir/config.h" -echocheck "cross compilation" -echores $_cross_compile - -if test $_cross_compile = yes; then - tmp_run() { - return 0 - } -fi - -tool_prefix="" - -if test $_cross_compile = yes ; then - # Usually cross-compiler prefixes match with the target triplet - test -n "$_target" && tool_prefix="$_target"- -fi - -test "$_pkg_config" = auto && _pkg_config="$tool_prefix"pkg-config +echo > $CONFIG_MAK +echo > $CONFIG_H -if test "$_cc" = auto ; then - if test -n "$tool_prefix" ; then - _cc="$tool_prefix"gcc - else - _cc=cc - fi -fi +test "$_pkg_config" = auto && _pkg_config=pkg-config +test "$_cc" = auto && _cc=cc extra_cflags="-I. -D_GNU_SOURCE $extra_cflags" _rst2man=rst2man -if [ -f "$(which rst2man.py)" ] ; then - _rst2man=rst2man.py -fi +test -f "$(which rst2man.py)" && _rst2man=rst2man.py echocheck "whether to build manpages with rst2man" if test "$_build_man" = auto ; then _build_man=no command_check "$_rst2man" --version && _build_man=yes -else - _build_man=no fi echores "$_build_man" -_rst2pdf=rst2pdf -if [ -f "$(which rst2pdf.py)" ] ; then - _rst2pdf=rst2pdf.py -fi - -echocheck "whether to build manual PDFs with rst2pdf" -pdfcheck() { - echo test | $_rst2pdf -c --repeat-table-rows -o "$mplayer_tmpdir/test.pdf" -} - -if test "$_build_pdf" = auto ; then - _build_pdf=no - command_check pdfcheck && _build_pdf=yes -else - _build_pdf=no -fi -echores "$_build_pdf" - -echocheck "whether to print binary build date" -if test "$_build_date" = yes ; then - _build_yes=yes -else - _build_date=no - extra_cflags="$extra_cflags -DNO_BUILD_TIMESTAMPS" -fi -echores "$_build_date" - - - -TMPC="$mplayer_tmpdir/tmp.c" -TMPCPP="$mplayer_tmpdir/tmp.cpp" -TMPEXE="$mplayer_tmpdir/tmp" -TMPH="$mplayer_tmpdir/tmp.h" -TMPS="$mplayer_tmpdir/tmp.S" - echocheck "working compiler" cflag_check "" || die "Compiler is not functioning correctly. Check your installation and custom CFLAGS $CFLAGS ." -echo "yes" +echores "yes" echocheck "perl" command_check perl -Mv5.8 -e';' || die "Perl is not functioning correctly or is ancient. Install the latest perl available." -echo yes - - -# --- +echores yes echocheck "compiler support of -pipe option" cflag_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no" -OURCFLAGS="-std=c99 -Wall" +addcflags() { cflag_check "$@" && OURCFLAGS="$OURCFLAGS $@" ; } -addcflags() { - cflag_check "$@" && OURCFLAGS="$OURCFLAGS $@" -} +OURCFLAGS="-std=c99 -Wall $_opt" -addcflags "-Wundef -Wmissing-prototypes -Wshadow -Wno-switch -Wno-parentheses -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Werror=implicit-function-declaration -Wno-error=deprecated-declarations -Wno-error=unused-function" -addcflags "-Wempty-body" +addcflags -g -g3 -ggdb +addcflags -Wundef -Wmissing-prototypes -Wshadow -Wno-switch -Wno-parentheses -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Werror=implicit-function-declaration -Wno-error=deprecated-declarations -Wno-error=unused-function -Wempty-body # clang -addcflags "-Wno-logical-op-parentheses -fcolor-diagnostics -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare" +addcflags -Wno-logical-op-parentheses -fcolor-diagnostics -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare cflag_check -MD -MP && DEPFLAGS="-MD -MP" +cflag_check -lm && _ld_lm="-lm" extra_ldflags="$extra_ldflags $LDFLAGS" extra_cflags="$extra_cflags $CPPFLAGS" -###################### -# MAIN TESTS GO HERE # -###################### +# If $1 is "yes", define $2 as 1 in config.h, else define it as 0 +define_yes_no() { + if test "$1" = yes ; then + echo "#define $2 1" >> $CONFIG_H + else + echo "#define $2 0" >> $CONFIG_H + fi +} +# Write the results of a check to config.mak/.h. +# Arguments: "yes/no"($1) "name"($2) +check_yes_no() { + define_yes_no $1 "HAVE_$2" + echo "$2 = $1" >> $CONFIG_MAK +} -echocheck "-lm" -if cflag_check -lm ; then - _ld_lm="-lm" - echores "yes" -else - _ld_lm="" - echores "no" -fi +check_trivial() { + echocheck "$1" + check_yes_no $2 $3 + echores "$2" +} +# Arguments: "message"($1) "setting"($2) "name"($3) "code"($4) +# Also, $5 - $N can be libraries needed - it'll try each separately. +# Use " " as first entry if you want to try with no libraries too. +check_compile() { + _res="$2" + _name="$3" + _code="$4" + echocheck "$1" + if test $_res = auto ; then + _res=no + shift 4 + while true ; do + compile_check "$_code" "$1" && libs_mplayer="$libs_mplayer $1" && _res=yes && break + test -z "$1" && break + shift + done + fi + check_yes_no $_res $_name + echores $_res + test $_res = yes && return 0 || return 1 +} -echocheck "nanosleep" -_nanosleep=no -statement_check time.h 'nanosleep(0, 0)' && _nanosleep=yes -if test "$_nanosleep" = yes ; then - def_nanosleep='#define HAVE_NANOSLEEP 1' -else - def_nanosleep='#define HAVE_NANOSLEEP 0' -fi -echores "$_nanosleep" +# Arguments: "message"($1) "setting"($2) "name"($3) "include"($4) "statement"($5) +# Also, $6 - $N can be libraries needed - it'll try each separately. +# Use " " as first entry if you want to try with no libraries too. +check_statement_libs() { + _res="$2" + _name="$3" + _inc="$4" + _st="$5" + echocheck "$1" + if test $_res = auto ; then + _res=no + shift 5 + while true ; do + statement_check "$_inc" "$_st" "$1" && libs_mplayer="$libs_mplayer $1" && _res=yes && break + test -z "$1" && break + shift + done + fi + check_yes_no $_res $_name + echores $_res + test $_res = yes && return 0 || return 1 +} +# Print "yes" if previous command succeeded, else "no" +defretval() { # shell is retarded? + if test $? == 0 ; then + echo "yes" + else + echo "no" + fi +} echocheck "dynamic loader" _dl=no for _ld_tmp in "" "-ldl"; do statement_check dlfcn.h 'dlopen("", 0)' $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break done -if test "$_dl" = yes ; then - def_dl='#define HAVE_LIBDL 1' -else - def_dl='#define HAVE_LIBDL 0' -fi +define_yes_no $_dl HAVE_LIBDL echores "$_dl" - echocheck "pthread" cflag_check -pthread && _ld_pthread="$_ld_pthread -pthread" cflag_check -lpthread && _ld_pthread="$_ld_pthread -lpthread" +cflag_check -lrt && _ld_pthread="$_ld_pthread -lrt" extra_cflags="$extra_cflags -D_REENTRANT -D_THREAD_SAFE" -cat > $TMPC << EOF -#include -static void *func(void *arg) { return arg; } -int main(void) { - pthread_t tid; - return pthread_create (&tid, 0, func, 0) != 0; -} -EOF -_pthreads=no -if cc_check "$_ld_pthread" ; then - _pthreads=yes -fi -echores "$_pthreads" -if test "$_pthreads" = no ; then - die "Unable to find pthreads support." -fi +compile_check waftools/fragments/pthreads.c "$_ld_pthread" || die "Unable to find pthreads support." +echores "yes" +check_statement_libs "compiler support for __atomic built-ins" auto ATOMIC_BUILTINS \ + stdint.h 'int64_t test = 0; test = __atomic_add_fetch(&test, 1, __ATOMIC_SEQ_CST)' \ + " " "-latomic" +_atomic=$(defretval) -echocheck "compiler support for __atomic built-ins" -_atomic=no -for _ld_tmp in "" "-latomic" ; do - statement_check stdint.h 'int64_t test = 0; test = __atomic_add_fetch(&test, 1, __ATOMIC_SEQ_CST)' $_ld_tmp && - libs_mplayer="$libs_mplayer $_ld_tmp" && _atomic=yes && break -done -if test "$_atomic" = yes ; then - def_atomic="#define HAVE_ATOMIC_BUILTINS 1" -else - def_atomic="#define HAVE_ATOMIC_BUILTINS 0" -fi -echores "$_atomic" - -if test "$_atomic" = no ; then - echocheck "compiler support for __sync built-ins" - _sync=no - statement_check stdint.h 'int64_t test = 0; test = __sync_add_and_fetch(&test, 1)' && _sync=yes - if test "$_sync" = yes ; then - def_sync="#define HAVE_SYNC_BUILTINS 1" - else - def_sync="#define HAVE_SYNC_BUILTINS 0" - fi - echores "$_sync" -else - def_sync="#define HAVE_SYNC_BUILTINS 0" -fi +_sync=auto +test "$_atomic" = yes && _sync=no +check_statement_libs "compiler support for __sync built-ins" $_sync SYNC_BUILTINS \ + stdint.h 'int64_t test = 0; test = __sync_add_and_fetch(&test, 1)' +_sync=$(defretval) if test "$_atomic" = no && test "$_sync" = no ; then die "your compiler must support either __atomic or __sync built-ins." fi -if test "$_pthreads" = yes ; then - -# Cargo-cult for -lrt, which is needed on not so recent glibc version for -# clock_gettime. It's documented as required before before glibc 2.17, which -# was released in december 2012. On newer glibc versions or on other systems, -# this will hopefully do nothing. -echocheck "linking with -lrt" -_rt=no -cc_check "$_ld_pthread -lrt" && _rt=yes -if test "$_rt" = yes ; then - _ld_pthread="$_ld_pthread -lrt" -fi -echores "$_rt" - -fi - -echocheck "stream cache" -_stream_cache="$_pthreads" -if test "$_stream_cache" = yes ; then - def_stream_cache='#define HAVE_STREAM_CACHE 1' -else - def_stream_cache='#define HAVE_STREAM_CACHE 0' -fi -echores "$_stream_cache" - -echocheck "iconv" -if test "$_iconv" = auto ; then - cat > $TMPC << EOF -#include -#include -#include -#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, &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 && libs_mplayer="$libs_mplayer $_ld_tmp" && - _iconv=yes && break - done - if test "$_iconv" != yes ; then +check_compile "iconv" $_iconv ICONV waftools/fragments/iconv.c " " "-liconv" "-liconv $_ld_dl" +_iconv=$(defretval) +if test "$_iconv" != yes ; then die "Unable to find iconv which should be part of standard compilation environment. Aborting. If you really mean to compile without iconv support use --disable-iconv." - fi -fi -if test "$_iconv" = yes ; then - def_iconv='#define HAVE_ICONV 1' -else - def_iconv='#define HAVE_ICONV 0' -fi -echores "$_iconv" - - -echocheck "soundcard.h" -_soundcard_h=no -def_soundcard_h='#define HAVE_SOUNDCARD_H 0' -def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 0' -for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do - header_check $_soundcard_header && _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/videoio.h" -sys_videoio_h=no -def_sys_videoio_h='#define HAVE_SYS_VIDEOIO_H 0' -header_check sys/videoio.h && sys_videoio_h=yes && - def_sys_videoio_h='#define HAVE_SYS_VIDEOIO_H 1' -echores "$sys_videoio_h" - - -echocheck "terminfo" -if test "$_terminfo" = auto ; then - _terminfo=no - for _ld_tmp in "-lncurses" "-lncursesw"; do - statement_check term.h 'setupterm(0, 1, 0)' $_ld_tmp && - libs_mplayer="$libs_mplayer $_ld_tmp" && _terminfo=yes && break - done -fi -if test "$_terminfo" = yes ; then - def_terminfo='#define HAVE_TERMINFO 1' - test $_ld_tmp && res_comment="using $_ld_tmp" - - if test "$_termcap" = auto ; then - _termcap=yes # terminfo provides termcap - fi -else - def_terminfo='#define HAVE_TERMINFO 0' -fi -echores "$_terminfo" - - -echocheck "termcap" -if test "$_termcap" = auto ; then - _termcap=no - for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do - statement_check term.h 'tgetent(0, 0)' $_ld_tmp && - libs_mplayer="$libs_mplayer $_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='#define HAVE_TERMCAP 0' -fi -echores "$_termcap" - - -echocheck "termios" -def_termios='#define HAVE_TERMIOS 0' -def_termios_h='#define HAVE_TERMIOS_H 0' -def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 0' -if test "$_termios" = auto ; then - _termios=no - for _termios_header in "termios.h" "sys/termios.h"; do - header_check $_termios_header && _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" +_soundcard_header=sys/soundcard.h +_check_snd=yes +check_statement_libs "sys/soundcard.h" auto SYS_SOUNDCARD_H sys/soundcard.h +test $(defretval) = yes && _soundcard_header=sys/soundcard.h && _check_snd=no +check_statement_libs "soundcard.h" $_check_snd SOUNDCARD_H soundcard.h +test $(defretval) = yes && _soundcard_header=soundcard.h +check_statement_libs "sys/videoio.h" auto SYS_VIDEOIO_H sys/videoio.h -echocheck "shm" -if test "$_shm" = auto ; then - cat > $TMPC << EOF -#include -#include -#include -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='#define HAVE_SHM 0' -fi -echores "$_shm" +check_statement_libs "terminfo" $_terminfo TERMINFO term.h 'setupterm(0, 1, 0)' "-lncurses" "-lncursesw" +check_statement_libs "termcap" $_termcap TERMCAP term.h 'tgetent(0, 0)' " " "-lncurses" "-ltinfo" "-ltermcap" -echocheck "audio select()" -if test "$_select" = no ; then - def_select='#define HAVE_AUDIO_SELECT 0' -elif test "$_select" = yes ; then - def_select='#define HAVE_AUDIO_SELECT 1' -fi -echores "$_select" +_termios_ok=no +check_statement_libs "termios.h" $_termios TERMIOS_H termios.h +test $(defretval) = yes && _termios_ok=yes && _termios=no +check_statement_libs "sys/termios.h" $_termios SYS_TERMIOS_H 'sys/termios.h' +test $(defretval) = yes && _termios_ok=yes +define_yes_no $_termios_ok HAVE_TERMIOS +check_statement_libs "shm" $_shm SHM "sys/types.h sys/ipc.h sys/shm.h" \ + "shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0);" -echocheck "sys/sysinfo.h" -_sys_sysinfo=no -statement_check sys/sysinfo.h 'struct sysinfo s_info; s_info.mem_unit=0; sysinfo(&s_info)' && _sys_sysinfo=yes -if test "$_sys_sysinfo" = yes ; then - def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1' -else - def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 0' -fi -echores "$_sys_sysinfo" +check_trivial "audio select()" $_select AUDIO_SELECT +check_statement_libs "sys/sysinfo.h" auto SYS_SYSINFO_H \ + sys/sysinfo.h 'struct sysinfo s_info; s_info.mem_unit=0; sysinfo(&s_info)' echocheck "pkg-config" if $($_pkg_config --version > /dev/null 2>&1); then @@ -1054,312 +545,105 @@ else echores "no" fi - -echocheck "libguess support" -if test "$_libguess" = auto ; then - _libguess=no - if pkg_config_add 'libguess >= 1.0' ; then - _libguess=yes - fi -fi -if test "$_libguess" = yes; then - def_libguess="#define HAVE_LIBGUESS 1" -else - def_libguess="#define HAVE_LIBGUESS 0" -fi -echores "$_libguess" - - -echocheck "Samba support (libsmbclient)" -if test "$_smb" = auto ; then - _smb=no - if pkg_config_add 'smbclient >= 0.2.0' ; then - _smb=yes +# Arguments: "message"($1) "setting"($2) "name"($3) "pkg-config string"($4) +# The name will be used as "#define HAVE_$name 1/0" in config.h, and as +# "$name = yes/no" in config.mak +# "setting"($2) is yes/no/auto and represents the --enable/--disable option +check_pkg_config() { + echocheck "$1" + _res=$2 + if test "$2" = auto ; then + _res=no + if pkg_config_add "$4" ; then + _res=yes + fi fi -fi -if test "$_smb" = yes; then - def_smb="#define HAVE_LIBSMBCLIENT 1" -else - def_smb="#define HAVE_LIBSMBCLIENT 0" -fi -echores "$_smb" + check_yes_no $_res $3 + echores "$_res" + test $_res = yes && return 0 || return 1 +} +check_pkg_config "libguess support" $_libguess LIBGUESS 'libguess >= 1.0' -echocheck "libquvi 0.4.x support" -if test "$_libquvi4" = auto ; then - _libquvi4=no - if pkg_config_add 'libquvi >= 0.4.1' ; then - _libquvi4=yes - fi -fi -echores "$_libquvi4" +check_pkg_config "Samba support (libsmbclient)" $_smb LIBSMBCLIENT 'smbclient >= 0.2.0' -echocheck "libquvi 0.9.x support" -if test "$_libquvi4" = yes ; then - _libquvi9=no - res_comment="using libquvi 0.4.x" -fi -if test "$_libquvi9" = auto ; then - _libquvi9=no - if pkg_config_add 'libquvi-0.9 >= 0.9.0' ; then - _libquvi9=yes - fi -fi -echores "$_libquvi9" +check_pkg_config "libquvi 0.4.x support" $_libquvi4 LIBQUVI4 'libquvi >= 0.4.1' +_libquvi4=$(defretval) -if test "$_libquvi9" = yes || test "$_libquvi4" = yes; then - def_libquvi9="#define HAVE_LIBQUVI 1" -else - def_libquvi9="#define HAVE_LIBQUVI 0" -fi +test $_libquvi4 = yes && _libquvi9=no +check_pkg_config "libquvi 0.9.x support" $_libquvi9 LIBQUVI9 'libquvi-0.9 >= 0.9.0' +_libquvi9=$(defretval) -######### -# VIDEO # -######### +_libquvi=no +test "$_libquvi9" = yes || test "$_libquvi4" = yes && _libquvi=yes +define_yes_no $_libquvi HAVE_LIBQUVI _wlver="1.2.0" -echocheck "Wayland" -if test "$_wayland" = yes || test "$_wayland" = auto; then - _wayland="no" - pkg_config_add "wayland-client >= $_wlver wayland-cursor >= $_wlver xkbcommon >= 0.3.0" \ - && _wayland="yes" -fi -if test "$_wayland" = yes; then - res_comment="" - def_wayland='#define HAVE_WAYLAND 1' -else - res_comment="version >= $_wlver" - def_wayland='#define HAVE_WAYLAND 0' -fi -echores "$_wayland" -unset _wlver +check_pkg_config "Wayland" $_wayland WAYLAND "wayland-client >= $_wlver wayland-cursor >= $_wlver xkbcommon >= 0.3.0" +_wayland=$(defretval) -echocheck "X11" -if test "$_x11" = auto ; then - _x11="no" - pkg_config_add "x11" && _x11="yes" -fi -if test "$_x11" = yes ; then - def_x11='#define HAVE_X11 1' -else - _x11=no - def_x11='#define HAVE_X11 0' - res_comment="check if the dev(el) packages are installed" -fi -echores "$_x11" +check_pkg_config "X11" $_x11 X11 "x11" +_x11=$(defretval) -echocheck "Xss screensaver extensions" -if test "$_xss" = auto ; then - _xss=no - statement_check "X11/extensions/scrnsaver.h" 'XScreenSaverSuspend(NULL, True)' -lXss && _xss=yes -fi -if test "$_xss" = yes ; then - def_xss='#define HAVE_XSS 1' - libs_mplayer="$libs_mplayer -lXss" -else - def_xss='#define HAVE_XSS 0' +# Disable X11 dependencies +_xext=auto +if test "$_x11" = no ; then + _xss=no + _xext=no + _xv=no + _vdpau=no + _vaapi=no + _xinerama=no + _vm=no fi -echores "$_xss" -echocheck "X extensions" -_xext=no -if test "$_x11" = yes ; then - pkg_config_add "xext" && _xext="yes" -fi -if test "$_xext" = yes ; then - def_xext='#define HAVE_XEXT 1' - echores "yes" -else - def_xext='#define HAVE_XEXT 0' - echores "no" -fi +check_pkg_config "Xss screensaver extensions" $_xss XSS "xscrnsaver" -echocheck "Xv" -if test "$_xv" = auto && test "$_x11" = yes ; then - _xv=no - statement_check_broken X11/Xlib.h X11/extensions/Xvlib.h 'XvGetPortAttribute(0, 0, 0, 0)' -lXv && _xv=yes -fi +check_pkg_config "X extensions" $_xext XEXT "xext" -if test "$_xv" = yes ; then - def_xv='#define HAVE_XV 1' - libs_mplayer="$libs_mplayer -lXv" -else - def_xv='#define HAVE_XV 0' -fi -echores "$_xv" +check_pkg_config "Xv" $_xv XV "xv" +check_pkg_config "VDPAU" $_vdpau VDPAU "vdpau >= 0.2" +_vdpau=$(defretval) +define_yes_no $_vdpau HAVE_VDPAU_HWACCEL -echocheck "VDPAU" -if test "$_vdpau" = auto && test "$_x11" = yes ; then - _vdpau=no - if test "$_dl" = yes ; then - pkg_config_add 'vdpau >= 0.2' && _vdpau=yes - fi -fi -if test "$_vdpau" = yes ; then - def_vdpau='#define HAVE_VDPAU 1' - def_vdpau_hwaccel='#define HAVE_VDPAU_HWACCEL 1' -else - def_vdpau='#define HAVE_VDPAU 0' - def_vdpau_hwaccel='#define HAVE_VDPAU_HWACCEL 0' -fi -echores "$_vdpau" - - -echocheck "VAAPI" -_vaapi_vpp=no -def_vaapi_vpp='#define HAVE_VAAPI_VPP 0' -_vaapi_glx=no -def_vaapi_glx='#define HAVE_VAAPI_GLX 0' -if test "$_vaapi" = auto && test "$_x11" = yes ; then - _vaapi=no - if test "$_dl" = yes ; then - pkg_config_add 'libva >= 0.32.0 libva-x11 >= 0.32.0' && _vaapi=yes - fi -fi -if test "$_vaapi" = yes ; then - def_vaapi='#define HAVE_VAAPI 1' - def_vaapi_hwaccel='#define HAVE_VAAPI_HWACCEL 1' -else - def_vaapi='#define HAVE_VAAPI 0' - def_vaapi_hwaccel='#define HAVE_VAAPI_HWACCEL 0' -fi -echores "$_vaapi" +check_pkg_config "VAAPI" $_vaapi VAAPI 'libva >= 0.32.0 libva-x11 >= 0.32.0' +_vaapi=$(defretval) +define_yes_no $_vaapi HAVE_VAAPI_HWACCEL if test "$_vaapi" = yes ; then - echocheck "VAAPI VPP" - if pkg-config 'libva >= 0.34.0' ; then - _vaapi_vpp=yes - def_vaapi_vpp='#define HAVE_VAAPI_VPP 1' - fi - echores "$_vaapi_glx" - echocheck "VAAPI GLX" - if pkg_config_add 'libva-glx >= 0.32.0' ; then - _vaapi_glx=yes - def_vaapi_glx='#define HAVE_VAAPI_GLX 1' - fi - echores "$_vaapi_glx" -fi - + check_pkg_config "VAAPI VPP" auto VAAPI_VPP 'libva >= 0.34.0' -echocheck "Xinerama" -if test "$_xinerama" = auto && test "$_x11" = yes ; then - _xinerama=no - statement_check X11/extensions/Xinerama.h 'XineramaIsActive(0)' -lXinerama && _xinerama=yes -fi - -if test "$_xinerama" = yes ; then - def_xinerama='#define HAVE_XINERAMA 1' - libs_mplayer="$libs_mplayer -lXinerama" -else - def_xinerama='#define HAVE_XINERAMA 0' -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 && test "$_x11" = yes ; then - _vm=no - statement_check_broken X11/Xlib.h X11/extensions/xf86vmode.h 'XF86VidModeQueryExtension(0, 0, 0)' -lXxf86vm && _vm=yes -fi -if test "$_vm" = yes ; then - def_vm='#define HAVE_XF86VM 1' - libs_mplayer="$libs_mplayer -lXxf86vm" + check_pkg_config "VAAPI GLX" auto VAAPI_GLX 'libva-glx >= 0.32.0' + _vaapi_glx=$(defretval) else - def_vm='#define HAVE_XF86VM 0' + check_yes_no no VAAPI_VPP + check_yes_no no VAAPI_GLX + _vaapi_glx=no fi -echores "$_vm" + +check_pkg_config "Xinerama" $_xinerama XINERAMA 'xinerama' + +check_pkg_config "Xxf86vm" $_vm XF86VM 'xxf86vm' # 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 && test "$_x11" = yes ; then - _xf86keysym=no - return_check X11/XF86keysym.h XF86XK_AudioPause && _xf86keysym=yes -fi -if test "$_xf86keysym" = yes ; then - def_xf86keysym='#define HAVE_XF86XK 1' -else - def_xf86keysym='#define HAVE_XF86XK 0' -fi -echores "$_xf86keysym" - - -echocheck "CACA" -if test "$_caca" = auto ; then - _caca=no - pkg_config_add 'caca >= 0.99.beta18' && _caca=yes -fi -if test "$_caca" = yes ; then - def_caca='#define HAVE_CACA 1' -else - def_caca='#define HAVE_CACA 0' -fi -echores "$_caca" - - -echocheck "DVB" -if test "$_dvb" = auto ; then - _dvb=no -cat >$TMPC << EOF -#include -#include -#include -#include -#include -#include -#include -#include -#include -int main(void) {return 0;} -EOF - for _inc_tmp in "" "-I/usr/src/DVB/include" ; do - cc_check $_inc_tmp && _dvb=yes && - extra_cflags="$extra_cflags $_inc_tmp" && break - done -fi -echores "$_dvb" -if test "$_dvb" = yes ; then - _dvbin=yes - def_dvb='#define HAVE_DVB 1' - def_dvbin='#define HAVE_DVBIN 1' -else - _dvbin=no - def_dvb='#define HAVE_DVB 0' - def_dvbin='#define HAVE_DVBIN 0 ' -fi - +check_statement_libs "XF86keysym" auto XF86XK X11/XF86keysym.h 'int x = XF86XK_AudioPause;' -echocheck "JPEG support" -if test "$_jpeg" = auto ; then - _jpeg=no - header_check_broken stdio.h jpeglib.h -ljpeg $_ld_lm && _jpeg=yes -fi -echores "$_jpeg" - -if test "$_jpeg" = yes ; then - def_jpeg='#define HAVE_JPEG 1' - libs_mplayer="$libs_mplayer -ljpeg" -else - def_jpeg='#define HAVE_JPEG 0' -fi +check_pkg_config "CACA" $_caca CACA 'caca >= 0.99.beta18' +check_compile "DVB" $_dvb DVB waftools/fragments/dvb.c +_dvbin=$(defretval) +check_yes_no $_dvbin DVBIN -################# -# VIDEO + AUDIO # -################# - +check_statement_libs "JPEG support" $_jpeg JPEG "stdio.h jpeglib.h" "" "-ljpeg $_ld_lm" +(test "$_x11" = no && test "$_wayland" = no) && _gl=no echocheck "OpenGL" #Note: this test is run even with --enable-gl since we autodetect linker flags -if (test "$_x11" = yes || test "$_wayland" = yes) && test "$_gl" != no ; then +if test "$_gl" != no ; then cat > $TMPC << EOF #if defined(GL_WAYLAND) #include @@ -1368,6 +652,7 @@ if (test "$_x11" = yes || test "$_wayland" = yes) && test "$_gl" != no ; then #include #endif #include +#include int main(int argc, char *argv[]) { #if defined(GL_WAYLAND) eglCreateContext(NULL, NULL, EGL_NO_CONTEXT, NULL); @@ -1375,801 +660,209 @@ int main(int argc, char *argv[]) { glXCreateContext(NULL, NULL, NULL, True); #endif glFinish(); - return 0; + return !GL_INVALID_FRAMEBUFFER_OPERATION; // check correct glext.h } EOF _gl=no if test "$_x11" = yes ; then for _ld_tmp in "" -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do - if cc_check $_ld_tmp $_ld_lm ; then + if compile_check $TMPC $_ld_tmp $_ld_lm ; then _gl=yes _gl_x11=yes libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl" + test "$_gl_x11" = yes && res_comment="$res_comment x11" break fi done fi - if test "$_wayland" = yes && cc_check -DGL_WAYLAND -lGL -lEGL && + if test "$_wayland" = yes && compile_check $TMPC -DGL_WAYLAND -lGL -lEGL && pkg_config_add "wayland-egl >= 9.0.0"; then _gl=yes _gl_wayland=yes libs_mplayer="$libs_mplayer -lGL -lEGL" - fi - - cat > $TMPC << EOF -#ifdef __APPLE__ -#include -#include -#else -#include -#include -#endif -int main(int argc, char *argv[]) { - return !GL_INVALID_FRAMEBUFFER_OPERATION; -} -EOF - if ! cc_check; then - _gl=no - _gl_x11=no - _gl_wayland=no - res_comment="missing glext.h, get from http://www.opengl.org/registry/api/glext.h" + test "$_gl_wayland" = yes && res_comment="$res_comment wayland" fi else _gl=no fi -def_gl_x11='#define HAVE_GL_X11 0' -def_gl_wayland='#define HAVE_GL_WAYLAND 0' - -if test "$_gl" = yes ; then - def_gl='#define HAVE_GL 1' - res_comment="backends:" - if test "$_gl_x11" = yes ; then - def_gl_x11='#define HAVE_GL_X11 1' - res_comment="$res_comment x11" - fi - if test "$_gl_wayland" = yes ; then - def_gl_wayland='#define HAVE_GL_WAYLAND 1' - res_comment="$res_comment wayland" - fi -else - def_gl='#define HAVE_GL 0' +if test "$_gl" = no ; then + _gl_x11=no + _gl_wayland=no fi +check_yes_no $_gl GL +check_yes_no $_gl_x11 GL_X11 +check_yes_no $_gl_wayland GL_WAYLAND echores "$_gl" - echocheck "VDPAU with OpenGL/X11" -if test "$_gl_x11" = yes && test "$_vdpau" = yes ; then - def_vdpau_gl_x11='#define HAVE_VDPAU_GL_X11 1' - _vdpau_gl_x11=yes -else - def_vdpau_gl_x11='#define HAVE_VDPAU_GL_X11 0' - _vdpau_gl_x11=no -fi +_vdpau_gl_x11=no +(test "$_gl_x11" = yes && test "$_vdpau" = yes) && _vdpau_gl_x11=yes +check_yes_no $_vdpau_gl_x11 VDPAU_GL_X11 echores "$_vdpau_gl_x11" +check_pkg_config "SDL 2.0" $_sdl2 SDL2 'sdl2' -echocheck "SDL 2.0" -if test "$_sdl2" = yes ; then - pkg_config_add 'sdl2' && _sdl2=yes -fi -if test "$_sdl2" = yes ; then - _sdl=yes # sdl2 implies sdl - def_sdl='#define HAVE_SDL1 1' - def_sdl2='#define HAVE_SDL2 1' - echores "$_sdl2" -else - def_sdl2='#define HAVE_SDL2 0' - echores "$_sdl2" - echocheck "SDL" - if test "$_sdl" = yes ; then - pkg_config_add 'sdl' && _sdl=yes - fi - if test "$_sdl" = yes ; then - def_sdl='#define HAVE_SDL1 1' - else - def_sdl='#define HAVE_SDL1 0' - fi - echores "$_sdl" -fi +check_statement_libs "OSS Audio" $_ossaudio OSS_AUDIO $_soundcard_header "int x = SNDCTL_DSP_SETFRAGMENT;" +check_statement_libs "RSound" $_rsound RSOUND rsound.h 'rsd_init(NULL);' -lrsound +check_statement_libs "sndio" $_sndio SNDIO sndio.h 'struct sio_par par; sio_initpar(&par); const char *s = SIO_DEVANY' -lsndio +check_pkg_config "PulseAudio" $_pulse PULSE 'libpulse >= 0.9' -######### -# AUDIO # -######### +check_pkg_config "PortAudio" $_portaudio PORTAUDIO 'portaudio-2.0 >= 19' +check_pkg_config "JACK" $_jack JACK 'jack' -echocheck "OSS Audio" -if test "$_ossaudio" = auto ; then - _ossaudio=no - return_check $_soundcard_header SNDCTL_DSP_SETFRAGMENT && _ossaudio=yes -fi -if test "$_ossaudio" = yes ; then - def_ossaudio='#define HAVE_OSS_AUDIO 1' - def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"' - def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"' -else - def_ossaudio='#define HAVE_OSS_AUDIO 0' - def_ossaudio_devdsp='#define PATH_DEV_DSP ""' - def_ossaudio_devmixer='#define PATH_DEV_MIXER ""' -fi -echores "$_ossaudio" +check_pkg_config "OpenAL" $_openal OPENAL 'openal >= 1.13' +check_pkg_config "ALSA audio" $_alsa ALSA 'alsa >= 1.0.9' -echocheck "RSound" -if test "$_rsound" = auto ; then - _rsound=no - statement_check rsound.h 'rsd_init(NULL);' -lrsound && _rsound=yes -fi -echores "$_rsound" +check_trivial "VCD support" $_vcd VCD -if test "$_rsound" = yes ; then - def_rsound='#define HAVE_RSOUND 1' - libs_mplayer="$libs_mplayer -lrsound" -else - def_rsound='#define HAVE_RSOUND 0' -fi +check_pkg_config "Blu-ray support" $_bluray LIBBLURAY 'libbluray >= 0.2.1' +check_pkg_config "dvdread" $_dvdread DVDREAD 'dvdread >= 4.1.0' -echocheck "sndio" -if test "$_sndio" = auto ; then - _sndio=no - statement_check sndio.h 'struct sio_par par; sio_initpar(&par); const char *s = SIO_DEVANY' -lsndio && _sndio=yes -fi -echores "$_sndio" +check_pkg_config "dvdnav" $_dvdnav DVDNAV 'dvdnav >= 4.2.0' -if test "$_sndio" = yes ; then - def_sndio='#define HAVE_SNDIO 1' - libs_mplayer="$libs_mplayer -lsndio" -else - def_sndio='#define HAVE_SNDIO 0' -fi +check_pkg_config "libcdio" $_libcdio CDDA 'libcdio_paranoia' - -echocheck "pulse" -if test "$_pulse" = auto ; then - _pulse=no - if pkg_config_add 'libpulse >= 0.9' ; then - _pulse=yes - fi +_oldass=$_libass +check_pkg_config "SSA/ASS support" $_libass LIBASS 'libass' +_libass=$(defretval) +if test $_oldass != no && test $_libass = no ; then + die "Unable to find development files for libass. Aborting. If you really mean to compile without libass support use --disable-libass." fi -echores "$_pulse" - -if test "$_pulse" = yes ; then - def_pulse='#define HAVE_PULSE 1' -else - def_pulse='#define HAVE_PULSE 0' -fi - - -echocheck "PortAudio" -if test "$_portaudio" = auto && test "$_pthreads" != yes ; then - _portaudio=no - res_comment="pthreads not enabled" -fi -if test "$_portaudio" = auto ; then - _portaudio=no - if pkg_config_add 'portaudio-2.0 >= 19' ; then - _portaudio=yes - fi -fi -echores "$_portaudio" - -if test "$_portaudio" = yes ; then - def_portaudio='#define HAVE_PORTAUDIO 1' -else - def_portaudio='#define HAVE_PORTAUDIO 0' -fi - -echocheck "JACK" -if test "$_jack" = auto ; then - _jack=no - if pkg_config_add jack ; then - _jack=yes - fi -fi - -if test "$_jack" = yes ; then - def_jack='#define HAVE_JACK 1' -else - def_jack='#define HAVE_JACK 0' -fi -echores "$_jack" - - -echocheck "OpenAL" -if test "$_openal" = auto ; then - _openal=no - if pkg_config_add 'openal >= 1.13' ; then - _openal=yes - fi -fi -echores "$_openal" - -if test "$_openal" = yes ; then - def_openal='#define HAVE_OPENAL 1' -else - def_openal='#define HAVE_OPENAL 0' -fi - - -echocheck "ALSA audio" -if test "$_alsa" = auto ; then - _alsa=no - if pkg_config_add "alsa >= 1.0.9" ; then - _alsa=yes - fi -fi -def_alsa='#define HAVE_ALSA 0' -if test "$_alsa" = yes ; then - def_alsa='#define HAVE_ALSA 1' -fi -echores "$_alsa" - - -# set default CD/DVD devices -default_cdrom_device="/dev/cdrom" -default_dvd_device="/dev/dvd" - - -echocheck "VCD support" -if test "$_vcd" = auto; then - _vcd=yes -fi -if test "$_vcd" = yes; then - def_vcd='#define HAVE_VCD 1' -else - def_vcd='#define HAVE_VCD 0' -fi -echores "$_vcd" - - - -echocheck "Blu-ray support" -if test "$_bluray" = auto ; then - _bluray=no - pkg_config_add 'libbluray >= 0.2.1' && _bluray=yes -fi -if test "$_bluray" = yes ; then - def_bluray='#define HAVE_LIBBLURAY 1' -else - def_bluray='#define HAVE_LIBBLURAY 0' -fi -echores "$_bluray" - - -echocheck "dvdread" -if test "$_dvdread" = auto ; then - _dvdread=no - pkg_config_add 'dvdread >= 4.1.0' && _dvdread=yes -fi -if test "$_dvdread" = yes ; then - def_dvdread='#define HAVE_DVDREAD 1' -else - def_dvdread='#define HAVE_DVDREAD 0' -fi -echores "$_dvdread" - - -echocheck "dvdnav" -if test "$_dvdnav" = auto ; then - _dvdnav=no - pkg_config_add 'dvdnav >= 4.2.0' && _dvdnav=yes -fi -if test "$_dvdnav" = yes ; then - def_dvdnav='#define HAVE_DVDNAV 1' -else - def_dvdnav='#define HAVE_DVDNAV 0' -fi -echores "$_dvdnav" - - -echocheck "libcdio" -if test "$_libcdio" = auto ; then - _libcdio=no - if pkg_config_add 'libcdio_paranoia' ; then - _libcdio=yes - fi -fi -if test "$_libcdio" = yes ; then - _cdda='yes' - def_cdda='#define HAVE_CDDA 1' -else - _libcdio=no - _cdda='no' - def_cdda='#define HAVE_CDDA 0' -fi -echores "$_libcdio" - - -echocheck "SSA/ASS support" -if test "$_ass" = auto ; then - if pkg_config_add libass ; then - _ass=yes - def_ass='#define HAVE_LIBASS 1' - else - die "Unable to find development files for libass. Aborting. If you really mean to compile without libass support use --disable-libass." - fi -else - def_ass='#define HAVE_LIBASS 0' -fi -echores "$_ass" - - -echocheck "libass OSD support" _dummy_osd=yes -if test "$_libass_osd" = auto ; then - _libass_osd=no - if test "$_ass" = yes ; then - _libass_osd=yes - _dummy_osd=no - fi -fi -echores "$_libass_osd" - - -echocheck "ENCA" -if test "$_enca" = auto ; then - _enca=no - statement_check enca.h 'enca_get_languages(NULL)' -lenca $_ld_lm && _enca=yes -fi - if test "$_enca" = yes ; then - def_enca='#define HAVE_ENCA 1' - libs_mplayer="$libs_mplayer -lenca" - else - def_enca='#define HAVE_ENCA 0' - fi -echores "$_enca" - - -echocheck "zlib" -_zlib=no -statement_check zlib.h 'inflate(0, Z_NO_FLUSH)' -lz && _zlib=yes -if test "$_zlib" = yes ; then - def_zlib='#define HAVE_ZLIB 1' - libs_mplayer="$libs_mplayer -lz" -else - die "Unable to find development files for zlib." -fi -echores "$_zlib" - - -echocheck "mpg123 support" -def_mpg123='#define HAVE_MPG123 0' -if test "$_mpg123" = auto; then - _mpg123=no - pkg_config_add 'libmpg123 >= 1.14.0' && _mpg123=yes -fi -if test "$_mpg123" = yes ; then - def_mpg123='#define HAVE_MPG123 1' -fi -echores "$_mpg123" - - -echocheck "LADSPA plugin support" -if test "$_ladspa" = auto ; then - _ladspa=no - if test "$_dl" = yes ; then - statement_check ladspa.h 'LADSPA_Descriptor ld = {0}' && _ladspa=yes - fi -fi -if test "$_ladspa" = yes; then - def_ladspa="#define HAVE_LADSPA 1" -else - def_ladspa="#define HAVE_LADSPA 0" -fi -echores "$_ladspa" - - -echocheck "libbs2b audio filter support" -if test "$_libbs2b" = auto ; then - _libbs2b=no - if pkg_config_add libbs2b ; then - _libbs2b=yes - fi -fi -def_libbs2b="#define HAVE_LIBBS2B 0" -test "$_libbs2b" = yes && def_libbs2b="#define HAVE_LIBBS2B 1" -echores "$_libbs2b" - - -echocheck "LCMS2 support" -if test "$_lcms2" = auto ; then - _lcms2=no - if pkg_config_add lcms2 ; then - _lcms2=yes - fi -fi -if test "$_lcms2" = yes; then - def_lcms2="#define HAVE_LCMS2 1" -else - def_lcms2="#define HAVE_LCMS2 0" -fi -echores "$_lcms2" +test $_libass = yes && _dummy_osd=no +echo "LIBASS_OSD = $_libass" >> $CONFIG_MAK +echo "DUMMY_OSD = $_dummy_osd" >> $CONFIG_MAK +check_pkg_config "ENCA" $_enca ENCA 'enca' -echocheck "VapourSynth support" -if test "$_vapoursynth" = auto ; then - _vapoursynth=no - if pkg_config_add 'vapoursynth >= 23 vapoursynth-script >= 23' ; then - _vapoursynth=yes - fi -fi -if test "$_vapoursynth" = yes ; then - def_vapoursynth="#define HAVE_VAPOURSYNTH 1" -else - def_vapoursynth="#define HAVE_VAPOURSYNTH 0" -fi -echores "$_vapoursynth" +check_pkg_config "zlib" auto ZLIB 'zlib' +test $(defretval) = no && die "Unable to find development files for zlib." +check_pkg_config "mpg123 support" $_mpg123 MPG123 'libmpg123 >= 1.14.0' -all_libav_libs="libavutil >= 52.48.101:libavcodec >= 55.34.1:libavformat >= 55.12.0:libswscale >= 2.1.2" -echocheck "Libav ($all_libav_libs)" -if test "$ffmpeg" = auto ; then - IFS=":" # shell should not be used for programming - if ! pkg_config_add $all_libav_libs ; then - die "Unable to find development files for some of the required Libav libraries above. Aborting." - fi -fi -echores "yes" - +test "$_dl" = no && _ladspa=no +check_statement_libs "LADSPA plugin support" $_ladspa LADSPA ladspa.h 'LADSPA_Descriptor ld =