]> git.sesse.net Git - vlc/blobdiff - extras/contrib/src/contrib-src.mak
Contribs: update libtiff URL.
[vlc] / extras / contrib / src / contrib-src.mak
index 2b6895ccc0214f1c633320cbc02af08573c1cef8..8bc056d8b2d2aa6c657fc7cd841a5a77eaeaeefd 100644 (file)
@@ -1,7 +1,7 @@
 #***************************************************************************
 # src/Makefile : Dearchive and compile all files necessary
 # ***************************************************************************
-# Copyright (C) 2003 - 2010 the VideoLAN team
+# Copyright (C) 2003 - 2011 the VideoLAN team
 # $Id$
 #
 # Authors: Christophe Massiot <massiot@via.ecp.fr>
@@ -35,17 +35,22 @@ include ./packages.mak
 # Set a clean environment
 # ***************************************************************************
 
+ifdef HAVE_DARWIN_OS
+export PATH := $(PREFIX)/bin:$(EXTRA_PATH):/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:
+else
 export PATH := $(PREFIX)/bin:$(EXTRA_PATH):$(PATH)
+endif
 export PKG_CONFIG_PATH
 export PKG_CONFIG_LIBDIR = $(PREFIX)/lib/pkgconfig
 export MACOSX_DEPLOYMENT_TARGET = $(SDK_TARGET)
 export LIBRARY_PATH := $(PREFIX)/lib:$(LIBRARY_PATH)
+export LD_LIBRARY_PATH := $(PREFIX)/lib:$(LD_LIBRARY_PATH)
 export CFLAGS = -I$(PREFIX)/include $(EXTRA_CFLAGS) $(EXTRA_CPPFLAGS)
 export CPPFLAGS = -I$(PREFIX)/include $(EXTRA_CFLAGS) $(EXTRA_CPPFLAGS)
 export CXXFLAGS = -I$(PREFIX)/include $(EXTRA_CFLAGS) $(EXTRA_CPPFLAGS)
 export LDFLAGS = -L$(PREFIX)/lib $(EXTRA_LDFLAGS)
 export ACLOCAL = aclocal -I$(PREFIX)/share/aclocal
-ifdef HAVE_DARWIN_OS
+ifdef HAVE_MACOSX
 export CC
 export CXX
 export LD
@@ -83,14 +88,8 @@ ifeq ($(RANLIB),)
 RANLIB=ranlib
 endif
 
-# For libebml/libmatroska. Grrr.
-ifneq ($(AR),)
-HOSTCC2=$(HOSTCC) AR="$(AR) rcvu"
-else
-HOSTCC2=$(HOSTCC)
-endif
-
-FFMPEGCONF=--disable-doc --disable-decoder=libvpx
+# Just a shortcut for readability
+ENABLED=1
 
 # cross compiling
 #This should be inside the if block but some config scripts are buggy
@@ -101,14 +100,11 @@ ifneq ($(BUILD),$(HOST))
     # unfortunately there isn't a complete separate GCC toolchain for MinGW under Cygwin
     #
     ifndef HAVE_CYGWIN
-        # We are REALLY cross compiling
-        ifdef HAVE_IOS
-            FFMPEGCONF+=--enable-cross-compile
-        else
-            FFMPEGCONF+=--cross-prefix=$(HOST)- --enable-cross-compile
+               # We are REALLY cross compiling
+               HAVE_CROSS_COMPILE=y
+        ifndef HAVE_IOS
+                       HAVE_CROSS_COMPILE_NEEDS_CROSS_PREFIX=y
         endif
-        X264CONF=--host=$(HOST)
-        PTHREADSCONF=CROSS="$(HOST)-"
     else
         # We are compiling for MinGW on Cygwin
     endif
@@ -119,83 +115,26 @@ endif
 #
 ifdef HAVE_WIN32
 HOSTCONF+= --without-pic --disable-shared --disable-dependency-tracking
-FFMPEGCONF+= --target-os=mingw32 --arch=x86 --enable-memalign-hack
-ifdef HAVE_WIN64
-FFMPEGCONF+= --cpu=athlon64 --arch=x86_64
-else
-FFMPEGCONF+= --cpu=i686
-endif
 endif
 
 ifdef HAVE_WINCE
 HOSTCONF+= --without-pic --disable-shared
-FFMPEGCONF+= --target-os=mingw32ce --arch=armv4l --cpu=armv4t --disable-encoders --disable-muxers --disable-mpegaudio-hp --disable-decoder=snow --disable-decoder=vc9 --disable-decoder=wmv3 --disable-decoder=vorbis --disable-decoder=dvdsub --disable-decoder=dvbsub --disable-protocols
-endif
-
-ifdef HAVE_UCLIBC
-ifdef HAVE_BIGENDIAN
-FFMPEGCONF+= --arch=armeb --enable-armv5te --enable-iwmmxt
-else
-FFMPEGCONF+= --arch=armv4l
-endif
-FFMPEGCONF+= --enable-small --disable-mpegaudio-hp
-FFMPEG_CFLAGS += -DHAVE_LRINTF --std=c99
-else
-ifndef HAVE_WINCE
-ifndef HAVE_IOS
-FFMPEGCONF+= --enable-libmp3lame --enable-libgsm
-endif
-endif
-endif
-
-ifdef HAVE_DARWIN_OS_ON_INTEL
-FFMPEGCONF += --enable-memalign-hack
-endif
-
-ifdef HAVE_DARWIN_OS
-X264CONF=--host=$(HOST)
-X264CONF += --enable-pic
-ifdef HAVE_DARWIN_32
-FFMPEGCONF += --enable-libvpx
-FFMPEGCONF += --cc=gcc-4.0
-else
-FFMPEGCONF += --cc=$(CC)
-endif
-FFMPEGCONF += --arch=$(ARCH)
-ifdef HAVE_DARWIN_64
-FFMPEGCONF += --enable-libvpx
-FFMPEGCONF += --cpu=core2
-X264CONF+=--host=x86_64-apple-darwin10
-endif
-ifdef HAVE_DARWIN_OS_ON_INTEL
-FFMPEG_CFLAGS += -DHAVE_LRINTF
-endif
 endif
 
-ifdef HAVE_AMR
-FFMPEGCONF+= --enable-libamr-nb --enable-libamr-wb --enable-nonfree
-endif
 
 ifdef HAVE_LINUX
-FFMPEGCONF+= --target-os=linux
 ifdef HAVE_MAEMO
-ifneq ($(filter -m%=cortex-a8, $(EXTRA_CFLAGS)),)
-FFMPEGCONF += --disable-runtime-cpudetect --enable-neon --cpu=cortex-a8
-endif
 # Really, this could be done on all Linux platforms, not just Maemo.
 # Installing statically-linked VLC plugins is so much simpler.
 HOSTCONF += --with-pic --disable-shared
 endif
-FFMPEGCONF += --enable-pic
-X264CONF += --enable-pic
 endif
 
+
 ifdef HAVE_ISA_THUMB
 NOTHUMB ?= -mno-thumb
 endif
 
-X264CONF+= --disable-avs --disable-lavf --disable-ffms --disable-mp4-output
-
 DATE=`date +%Y-%m-%d`
 
 # ***************************************************************************
@@ -237,7 +176,7 @@ endef
 # bundle. For instance if you're building a library named libtoto.dylib,
 # which depends on the contrib library libtata.dylib, you should have the
 # following entry :
-# .toto: toto_directory .tata
+# .toto: toto_.tata
 #      cd $< ; ./configure --prefix=$(PREFIX)
 #      $(MAKE) -C $<
 #      $(MAKE) -C $< install
@@ -280,7 +219,7 @@ CLEAN_PKG += cmake
 # libtool
 # ***************************************************************************
 
-ifdef HAVE_DARWIN_OS
+ifdef HAVE_MACOSX
 libtool-$(LIBTOOL_VERSION).tar.gz:
        $(WGET) $(LIBTOOL_URL)
 
@@ -359,11 +298,11 @@ gettext-$(GETTEXT_VERSION).tar.gz:
 
 gettext: gettext-$(GETTEXT_VERSION).tar.gz
        $(EXTRACT_GZ)
-ifdef HAVE_DARWIN_OS
+ifdef HAVE_MACOSX
        patch -p0 < Patches/gettext-macosx.patch
 endif
 
-.intl: gettext
+.intl: gettext .iconv
 ifdef HAVE_WIN32
        ( cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-relocatable --disable-java --disable-native-java)
 else
@@ -415,23 +354,23 @@ libiconv-snowleopard.tar.bz2:
 libiconv-snowleopard: libiconv-snowleopard.tar.bz2
        $(EXTRACT_BZ2)
 
-ifdef HAVE_DARWIN_OS
-ifdef HAVE_DARWIN_10
-.iconv: libiconv-snowleopard
+ifdef HAVE_MACOSX
+ifdef HAVE_MACOSX_DARWIN_10
+.iconv-from-os: libiconv-snowleopard
        (cd libiconv-snowleopard && cp libiconv.* $(PREFIX)/lib/)
        touch $@
 else
-.iconv:
+.iconv-from-os:
        touch $@
 endif
-else
+endif
+
 .iconv: libiconv
        (cd libiconv; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-nls && make && make install)
        $(INSTALL_NAME)
        touch $@
-endif
 
-CLEAN_FILE += .iconv
+CLEAN_FILE += .iconv .iconv-from-os
 CLEAN_PKG += libiconv
 DISTCLEAN_PKG += libiconv-$(LIBICONV_VERSION).tar.gz
 
@@ -452,20 +391,35 @@ ifdef HAVE_WIN32
        (cd $@; autoreconf -ivf)
 endif
 
-.fontconfig: fontconfig .xml .freetype
-ifdef HAVE_WIN32
-  ifdef HAVE_CYGWIN
-       (cd $<; ./configure --target=$(HOST) --disable-pic --disable-shared --disable-docs --with-arch=i686 --prefix=$(PREFIX) --with-freetype-config=$(PREFIX)/bin/freetype-config --disable-libxml2 && make && make install)
-  else
-       (cd $<; $(HOSTCC)  ./configure $(HOSTCONF) --with-arch=i686 --prefix=$(PREFIX) --with-freetype-config=$(PREFIX)/bin/freetype-config --disable-libxml2 --disable-docs && make && make install)
-  endif
-else
-  ifdef HAVE_DARWIN_OS
-       (cd $<; $(HOSTCC) LIBXML2_CFLAGS=`xml2-config --cflags` LIBXML2_LIBS=`xml2-config --libs` ./configure $(HOSTCONF) --with-cache-dir=/usr/X11/var/cache/fontconfig --with-confdir=/usr/X11/lib/X11/fonts --with-default-fonts=/System/Library/Fonts --with-add-fonts=/Library/Fonts,~/Library/Fonts --prefix=$(PREFIX) --with-freetype-config=$(PREFIX)/bin/freetype-config --with-arch=$(ARCH) --enable-libxml2 --disable-docs && make && make install-exec && (cd fontconfig ; make install-data) && cp fontconfig.pc $(PKG_CONFIG_LIBDIR))
-  else
-       (cd $<; $(HOSTCC) LIBXML2_CFLAGS=`$(PREFIX)/bin/xml2-config --cflags` ./configure $(HOSTCONF) --prefix=$(PREFIX) --with-freetype-config=$(PREFIX)/bin/freetype-config --enable-libxml2 --disable-docs && make && make install)
-  endif
+FONTCONFIG_BASE_CONF = --prefix=$(PREFIX) \
+                                          --with-freetype-config=$(PREFIX)/bin/freetype-config \
+                                          --enable-libxml2 \
+                                          --disable-docs
+
+FONTCONFIG_CONF-$(ENABLED)      = $(HOSTCONF) $(FONTCONFIG_BASE_CONF)
+FONTCONFIG_CONF-$(HAVE_MACOSX) += $(HOSTCONF) \
+       --with-cache-dir=~/Library/Caches/fontconfig \
+       --with-confdir=/usr/X11/lib/X11/fonts \
+       --with-default-fonts=/System/Library/Fonts \
+       --with-add-fonts=/Library/Fonts,~/Library/Fonts  \
+       --with-arch=$(ARCH)
+
+FONTCONFIG_CONF-$(HAVE_WIN32)   = --with-arch=i686 $(FONTCONFIG_BASE_CONF)
+ifndef HAVE_CYGWIN
+FONTCONFIG_CONF-$(HAVE_WIN32)  += $(HOSTCONF)
 endif
+FONTCONFIG_CONF-$(HAVE_CYGWIN) += --target=$(HOST) --disable-pic --disable-shared
+
+FONTCONFIG_ENV-$(ENABLED)         = $(HOSTCC) LIBXML2_CFLAGS=`$(PREFIX)/bin/xml2-config --cflags`
+FONTCONFIG_ENV-$(HAVE_MACOSX)     = $(HOSTCC) LIBXML2_CFLAGS=`xml2-config --cflags` LIBXML2_LIBS=`xml2-config --libs`
+FONTCONFIG_ENV-$(HAVE_WIN32)      = $(HOSTCC)
+FONTCONFIG_ENV-$(HAVE_CYGWIN)     =
+
+FONTCONFIG_INSTALL-$(ENABLED)     = make install
+FONTCONFIG_INSTALL-$(HAVE_MACOSX) = make install-exec && (cd fontconfig ; make install-data) && cp fontconfig.pc $(PKG_CONFIG_LIBDIR) && sed -e 's%/usr/lib/libiconv.la%%' -i.orig $(PREFIX)/lib/libfontconfig.la
+
+.fontconfig: fontconfig .xml .freetype
+       (cd $<; $(FONTCONFIG_ENV-1) ./configure $(FONTCONFIG_CONF-1) && make && $(FONTCONFIG_INSTALL-1))
        $(INSTALL_NAME)
        touch $@
 
@@ -504,7 +458,11 @@ fribidi: fribidi-$(FRIBIDI_VERSION).tar.gz
        patch -p0 < Patches/fribidi.patch
        ( cd $@; rm -f configure; ./bootstrap)
 
+ifdef HAVE_MACOSX
+.fribidi: fribidi .iconv-from-os
+else
 .fribidi: fribidi .iconv
+endif
        (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX)  && make && make install)
        $(INSTALL_NAME)
        touch $@
@@ -558,63 +516,33 @@ CLEAN_FILE += .mpeg2
 CLEAN_PKG += libmpeg2
 DISTCLEAN_PKG += libmpeg2-$(LIBMPEG2_VERSION).tar.gz
 
-# ***************************************************************************
-# pcre
-# ***************************************************************************
-
-pcre-$(PCRE_VERSION).tar.bz2:
-       $(WGET) $(PCRE_URL)
-
-pcre: pcre-$(PCRE_VERSION).tar.bz2
-       $(EXTRACT_BZ2)
-
-.pcre: pcre
-       (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared && make && make install )
-       touch $@
-
-CLEAN_FILE += .pcre
-CLEAN_PKG += pcre
-DISTCLEAN_PKG += pcre-$(PCRE_VERSION).tar.bz2
-
 # ***************************************************************************
 # lua
 # ***************************************************************************
 
-ifdef HAVE_WIN32
-LUA_MAKEPLATEFORM=mingw
-else
-ifdef HAVE_DARWIN_OS
-LUA_MAKEPLATEFORM=macosx
-else
-ifdef HAVE_LINUX
-LUA_MAKEPLATEFORM=linux
-else
-ifdef HAVE_BSD
-LUA_MAKEPLATEFORM=bsd
-else
-LUA_MAKEPLATEFORM=generic
-endif
-endif
-endif
-endif
+LUA_MAKEPLATEFORM-$(ENABLED)=generic
+LUA_MAKEPLATEFORM-$(HAVE_BSD)=bsd
+LUA_MAKEPLATEFORM-$(HAVE_LINUX)=linux
+LUA_MAKEPLATEFORM-$(HAVE_MACOSX)=macosx
+LUA_MAKEPLATEFORM-$(HAVE_WIN32)=mingw
 
 lua-$(LUA_VERSION).tar.gz:
        $(WGET) $(LUA_URL)
 
 lua: lua-$(LUA_VERSION).tar.gz
        $(EXTRACT_GZ)
-ifdef HAVE_DARWIN_OS
+ifdef HAVE_MACOSX
        (cd $@; sed -e 's%gcc%$(CC)%' -e 's%LDFLAGS=%LDFLAGS=$(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)%' -i.orig  src/Makefile)
 endif
 
 .lua: lua
 ifdef HAVE_WIN32
-       ( cd $< && sed -i.orig 's/lua luac/lua.exe/' Makefile && cd src && sed -i.orig 's/CC=/#CC=/' Makefile && sed -i 's/strip/$(STRIP)/' Makefile && cd ../..)
-       (cd $<&& $(HOSTCC) make $(LUA_MAKEPLATEFORM)&& cd src&& $(HOSTCC) make liblua.a&& cd ..&&$(HOSTCC) make install INSTALL_TOP=$(PREFIX)&& $(RANLIB) $(PREFIX)/lib/liblua.a)
+       ( cd $< && sed -i.orig 's/lua luac/lua.exe/' Makefile && cd src && sed -i.orig 's/CC=/#CC=/' Makefile && sed -i 's/=strip/=$(STRIP)/;s/= ranlib/= $(RANLIB)/' Makefile && cd ../..)
+       (cd $<&& $(HOSTCC) make $(LUA_MAKEPLATEFORM-1)&& cd src&& $(HOSTCC) make liblua.a&& cd ..&&$(HOSTCC) make install INSTALL_TOP=$(PREFIX)&& $(RANLIB) $(PREFIX)/lib/liblua.a)
        (cd $<&& sed -i.orig 's@prefix= /usr/local@prefix= $(PREFIX)@' etc/lua.pc&& mkdir -p $(PREFIX)/lib/pkgconfig&& cp etc/lua.pc $(PREFIX)/lib/pkgconfig)
 else
        (cd $<&& patch -p1) < Patches/lua-noreadline.patch
-       (cd $<&& $(HOSTCC) make $(LUA_MAKEPLATEFORM) && make install INSTALL_TOP=$(PREFIX))
+       (cd $<&& $(HOSTCC) make $(LUA_MAKEPLATEFORM-1) && make install INSTALL_TOP=$(PREFIX))
 endif
        touch $@
 
@@ -631,7 +559,7 @@ libmad-$(LIBMAD_VERSION).tar.gz:
 
 libmad: libmad-$(LIBMAD_VERSION).tar.gz
        $(EXTRACT_GZ)
-ifdef HAVE_DARWIN_OS
+ifdef HAVE_MACOSX
        ( cd $@; sed -e 's%-march=i486%$(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)%' -e 's%-dynamiclib%-dynamiclib -arch $(ARCH)%' -i.orig  configure )
 endif
 
@@ -743,7 +671,7 @@ endif
 
 THEORACONF = --disable-sdltest --disable-oggtest --disable-vorbistest --disable-examples
 
-ifdef HAVE_DARWIN_64
+ifdef HAVE_MACOSX64
 THEORACONF += --disable-asm
 endif
 ifdef HAVE_WIN64
@@ -751,7 +679,7 @@ THEORACONF += --disable-asm
 endif
 
 .theora: libtheora .ogg
-ifdef HAVE_DARWIN_OS
+ifdef HAVE_MACOSX
        cd $<; ($(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(THEORACONF) && make && make install)
 else
 ifdef HAVE_WIN32
@@ -805,24 +733,19 @@ flac: flac-$(FLAC_VERSION).tar.gz
 ifdef HAVE_WIN32
        patch -p0 < Patches/flac-win32.patch
 endif
-ifdef HAVE_DARWIN_OS
+ifdef HAVE_MACOSX
        ( cd $@; sed -e 's%-dynamiclib%-dynamiclib -arch $(ARCH)%' -i.orig  configure )
 endif
+       patch -p0 < Patches/libFLAC-pc.patch
 
 FLAC_DISABLE_FLAGS = --disable-oggtest --disable-xmms-plugin --disable-cpplibs
+ifdef HAVE_MACOSX_ON_INTEL
+FLAC_DISABLE_FLAGS += --disable-asm-optimizations
+endif
 
 .flac: flac .ogg
-ifdef HAVE_DARWIN_OS_ON_INTEL
-       cd $< && \
-       $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-asm-optimizations $(FLAC_DISABLE_FLAGS)
-else
-       cd $< && \
-       $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX)  $(FLAC_DISABLE_FLAGS)
-endif
-       cd $</src && \
-       make -C libFLAC && \
-       echo 'Requires.private: ogg' >> libFLAC/flac.pc && \
-       make -C libFLAC install
+       cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(FLAC_DISABLE_FLAGS)
+       cd $</src && make -C libFLAC && make -C libFLAC install
        cd $< && make -C include install
        $(INSTALL_NAME)
        touch $@
@@ -885,7 +808,7 @@ libebml: libebml-$(LIBEBML_VERSION).tar.bz2
 ifdef HAVE_WIN32
        (cd $<; make -C make/mingw32 prefix=$(PREFIX) $(HOSTCC) SHARED=no && make -C make/linux install_staticlib install_headers prefix=$(PREFIX) $(HOSTCC))
 else
-       (cd $<; make -C make/linux prefix=$(PREFIX) $(HOSTCC2) staticlib && make -C make/linux install_staticlib install_headers prefix=$(PREFIX))
+       (cd $<; make -C make/linux prefix=$(PREFIX) $(HOSTCC) staticlib && make -C make/linux install_staticlib install_headers prefix=$(PREFIX))
        $(RANLIB) $(PREFIX)/lib/libebml.a
 endif
        touch $@
@@ -923,37 +846,27 @@ DISTCLEAN_PKG += libmatroska-$(LIBMATROSKA_VERSION).tar.bz2
 # libvp8
 # ***************************************************************************
 
-#ibvpx-$(VPX_VERSION).tar.bz2:
-#$(WGET) $(VPX_URL)
+libvpx-$(VPX_VERSION).tar.bz2:
+       $(WGET) $(VPX_URL)
 
-libvpx: 
-       $(GIT) clone git://review.webmproject.org/libvpx.git
+libvpx: libvpx-$(VPX_VERSION).tar.bz2
+       $(EXTRACT_BZ2)
 
 ifdef HAVE_WIN32
-VPX_TARGET=x86-win32-gcc
 CROSS=$(HOST)-
-else
-ifdef HAVE_DARWIN_OS
-ifdef HAVE_DARWIN_64
-VPX_TARGET=x86_64-darwin9-gcc
-else
-ifdef HAVE_DARWIN_OS_ON_INTEL
-VPX_TARGET=x86-darwin9-gcc
-else
-VPX_TARGET=ppc32-darwin9-gcc
-endif
-endif
-else
-VPX_TARGET=FIXME
-endif
 endif
 
-ifdef HAVE_DARWIN_OS_ON_INTEL
-.libvpx: libvpx .yasm
-else
-.libvpx: libvpx
-endif
-       (cd $<; CROSS=$(CROSS) ./configure --target=$(VPX_TARGET) --disable-install-bins --disable-install-srcs --disable-install-libs --disable-install-docs --disable-examples --disable-vp8-decoder && make && make install)
+VPX_TARGET-$(ENABLED)              = --target=FIXME
+VPX_TARGET-$(HAVE_LINUX)           =
+VPX_TARGET-$(HAVE_WIN32)           = --target=x86-win32-gcc
+VPX_TARGET-$(HAVE_DARWIN_OS)       = --target=ppc32-darwin9-gcc
+VPX_TARGET-$(HAVE_MACOSX_ON_INTEL) = --target=x86-darwin9-gcc
+VPX_TARGET-$(HAVE_MACOSX64)        = --target=x86_64-darwin9-gcc
+VPX_DEPS-$(ENABLED)                =
+VPX_DEPS-$(HAVE_MACOSX_ON_INTEL) += .yasm
+
+.libvpx: libvpx $(VPX_DEPS-1)
+       (cd $<; CROSS=$(CROSS) ./configure $(VPX_TARGET-1) --disable-install-bins --disable-install-srcs --disable-install-libs --disable-install-docs --disable-examples --disable-vp8-decoder && make && make install)
        (rm -rf $(PREFIX)/include/vpx/ && mkdir -p $(PREFIX)/include/vpx/; cd $< && cp vpx/*.h vpx_ports/*.h $(PREFIX)/include/vpx/) # Of course, why the hell would one expect it to be listed or in make install?
        rm $(PREFIX)/include/vpx/config.h
        (cd $<; $(RANLIB) libvpx.a && mkdir -p $(PREFIX)/lib && cp libvpx.a $(PREFIX)/lib/) # Of course, why the hell would one expect it to be listed or in make install?
@@ -961,7 +874,7 @@ endif
 
 CLEAN_FILE += .libvpx
 CLEAN_PKG += libvpx
-#DISTCLEAN_PKG += libvpx-$(VPX_VERSION).tar.bz2
+DISTCLEAN_PKG += libvpx-$(VPX_VERSION).tar.bz2
 
 # ***************************************************************************
 # lame
@@ -1020,42 +933,12 @@ CLEAN_PKG += libamrwb
 DISTCLEAN_PKG += amrwb-$(LIBAMR_WB_VERSION).tar.bz2
 
 # ***************************************************************************
-
 # ffmpeg
 # ***************************************************************************
 
-ifdef SVN
-ifdef HAVE_WIN32
-ffmpeg: .dshow_headers
-else
-ffmpeg:
-endif
-       $(SVN) co $(FFMPEG_SVN) ffmpeg
-ifdef HAVE_ISA_THUMB
-       patch -p0 < Patches/ffmpeg-avcodec-no-thumb.patch
-endif
-ifdef HAVE_WIN64
-       (cd ffmpeg/libswscale; patch -p0 < ../../Patches/ffmpeg-win64.patch;)
-endif
-ifdef HAVE_UCLIBC
-       patch -p0 < Patches/ffmpeg-svn-uclibc.patch
-       patch -p0 < Patches/ffmpeg-svn-internal-define.patch
-       patch -p0 < Patches/ffmpeg-svn-libavformat.patch
-endif
-ifdef HAVE_WIN32
-       sed -i "s/std=c99/std=gnu99/" ffmpeg/configure
-endif
-else
-ffmpeg-$(FFMPEG_VERSION).tar.gz:
-       echo "ffmpeg snapshot is too old, you MUST use subversion !"
-       exit -1
-       $(WGET) $(FFMPEG_URL)
-
-ffmpeg: ffmpeg-$(FFMPEG_VERSION).tar.gz
-       $(EXTRACT_GZ)
-endif
-
-FFMPEGCONF += \
+#Common configuration
+FFMPEGCONF = --disable-doc \
+       --disable-decoder=libvpx \
        --disable-debug \
        --enable-gpl \
        --enable-postproc \
@@ -1067,61 +950,192 @@ FFMPEGCONF += \
        --disable-protocols \
        --disable-avfilter \
        --disable-network
-ifdef HAVE_WIN64
-FFMPEGCONF += --disable-bzlib --disable-decoder=dca --disable-encoder=vorbis --enable-libmp3lame --enable-w32threads --disable-dxva2 --disable-bsfs
+
+FFMPEGCONFSMALL = --disable-encoders --disable-muxers
+FFMPEGCONFNEON = --cpu=cortex-a8 --disable-runtime-cpudetect --enable-neon
+
+#Cross-Compilation
+ifdef HAVE_CROSS_COMPILE
+FFMPEGCONF += --enable-cross-compile
+endif
+
+ifdef HAVE_CROSS_COMPILE_NEEDS_CROSS_PREFIX
+ifndef HAVE_ANDROID
+ifndef HAVE_SYMBIAN
+FFMPEGCONF += --cross-prefix=$(HOST)-
 else
-ifdef HAVE_WIN32
-FFMPEGCONF += --disable-bzlib --disable-decoder=dca --disable-encoder=vorbis --enable-libmp3lame --enable-w32threads --enable-dxva2 --disable-bsfs --enable-libvpx
+FFMPEGCONF += --cross-prefix=arm-none-symbianelf- --arch=armv6 --disable-asm --target-os=none
+FFMPEGCONF += $(FFMPEGCONFSMALL)
+endif
 else
+FFMPEGCONF += --cross-prefix=arm-linux-androideabi- --arch=armv6
+FFMPEGCONF += $(FFMPEGCONFSMALL)
+endif
+endif
+
+ifdef CC
+FFMPEGCONF += --cc="$(CC)"
+endif
+
+#
+# Special target-dependant options
+#
+ifndef HAVE_UCLIBC
+ifndef HAVE_WINCE
+ifndef HAVE_IOS
+ifndef HAVE_ANDROID
+FFMPEGCONF+= --enable-libmp3lame --enable-libgsm
+endif
+endif
+endif
+endif
+
+# MacOS X
+ifdef HAVE_MACOSX_ON_INTEL
+FFMPEGCONF += --enable-memalign-hack
+endif
+
+ifdef HAVE_DARWIN_OS
+FFMPEGCONF += --arch=$(ARCH) --target-os=darwin
+endif
+
+ifdef HAVE_MACOSX32
+FFMPEGCONF += --enable-libvpx
+FFMPEGCONF += --cc=gcc-4.2
+endif
+
+ifdef HAVE_MACOSX64
+FFMPEGCONF += --enable-libvpx
+FFMPEGCONF += --cc=gcc-4.2
+FFMPEGCONF += --cpu=core2
+endif
+
+ifdef HAVE_MACOSX_ON_INTEL
+FFMPEG_CFLAGS += -DHAVE_LRINTF
+endif
+
 ifdef HAVE_IOS
-FFMPEGCONF += --target-os=darwin --sysroot=${IOS_SDK_ROOT}
+FFMPEGCONF += --sysroot=${IOS_SDK_ROOT}
 ifeq ($(ARCH),arm)
-FFMPEGCONF += --disable-runtime-cpudetect --enable-neon --cpu=cortex-a8
+FFMPEGCONF += $(FFMPEGCONFNEON)
 else
 FFMPEGCONF += --disable-mmx
 endif
+endif #IOS
 
-else
-FFMPEGCONF += --enable-pthreads
+# Linux
+ifdef HAVE_LINUX
+FFMPEGCONF += --target-os=linux --enable-pic
 endif
-FFMPEG_CFLAGS += --std=gnu99
+
+ifdef HAVE_MAEMO
+ifneq ($(filter -m%=cortex-a8, $(EXTRA_CFLAGS)),)
+FFMPEGCONF += $(FFMPEGCONFNEON)
+endif
+endif
+
+ifdef HAVE_ANDROID
+ifdef HAVE_NEON
+FFMPEGCONF += $(FFMPEGCONFNEON)
+FFMPEG_CFLAGS +=-mfloat-abi=softfp -mfpu=neon
 endif
 endif
 
-ifdef HAVE_WINCE
-.ffmpeg: ffmpeg .zlib
-else
 ifdef HAVE_UCLIBC
-.ffmpeg: ffmpeg
-else
-ifdef HAVE_IOS
-.ffmpeg: ffmpeg
-else
-ifeq ($(ARCH),armel)
-.ffmpeg: ffmpeg .lame .gsm .zlib
+ifdef HAVE_BIGENDIAN
+FFMPEGCONF+= --arch=armeb --enable-armv5te --enable-iwmmxt
 else
+FFMPEGCONF+= --arch=armv4l
+endif
+FFMPEGCONF+= --enable-small --disable-mpegaudio-hp
+FFMPEG_CFLAGS += -DHAVE_LRINTF --std=c99
+endif
+
+# Win32
+ifdef HAVE_WIN32
+FFMPEGCONF+= --target-os=mingw32 --arch=x86 --enable-memalign-hack
+FFMPEGCONF += --disable-bzlib --disable-decoder=dca --disable-encoder=vorbis \
+                       --enable-libmp3lame --enable-w32threads --disable-bsfs
 ifdef HAVE_WIN64
-.ffmpeg: ffmpeg .lame .gsm .zlib
-else
-.ffmpeg: ffmpeg .lame .gsm .libvpx .zlib
+FFMPEGCONF += --disable-dxva2
+FFMPEGCONF+= --cpu=athlon64 --arch=x86_64
+else # !WIN64
+FFMPEGCONF += --enable-dxva2 --enable-libvpx
+FFMPEGCONF+= --cpu=i686
+endif
+endif
+
+# WinCE
+ifdef HAVE_WINCE
+FFMPEGCONF+= --target-os=mingw32ce --arch=armv4l --cpu=armv4t \
+                        --disable-decoder=snow --disable-decoder=vc9 \
+                        --disable-decoder=wmv3 --disable-decoder=vorbis \
+                        --disable-decoder=dvdsub --disable-decoder=dvbsub
+FFMPEGCONF += $(FFMPEGCONFSMALL)
+endif
+
+ifndef HAVE_WIN32
+FFMPEGCONF += --enable-pthreads
+FFMPEG_CFLAGS += --std=gnu99
 endif
+
+ifdef GIT
+
+ffmpeg:
+       $(GIT) clone $(FFMPEG_GIT)
+ifdef HAVE_ISA_THUMB
+       patch -p0 < Patches/ffmpeg-avcodec-no-thumb.patch
+endif
+ifdef HAVE_WIN64
+       (cd ffmpeg/libswscale; patch -p0 < ../../Patches/ffmpeg-win64.patch;)
+endif
+ifdef HAVE_UCLIBC
+       patch -p0 < Patches/ffmpeg-svn-uclibc.patch
+       patch -p0 < Patches/ffmpeg-svn-internal-define.patch
+       patch -p0 < Patches/ffmpeg-svn-libavformat.patch
 endif
+ifdef HAVE_WIN32
+       sed -i "s/std=c99/std=gnu99/" ffmpeg/configure
 endif
+       (cd ffmpeg; patch -p1 < ../Patches/libavformat-ape.c.patch )
+       touch $@
+
+else
+
+ffmpeg:
+       echo "ffmpeg snapshot is too old, you MUST use git !"
+       exit 1
+
 endif
+
+ifeq ($(ARCH),armel)
+HAVE_ARMELF=1
 endif
-       (cd $<; $(HOSTCC) ./configure --prefix=$(PREFIX) --extra-cflags="$(FFMPEG_CFLAGS) -DHAVE_STDINT_H" --extra-ldflags="$(LDFLAGS)" $(FFMPEGCONF) --disable-shared --enable-static && make && make install-libs install-headers)
+
+FFMPEG_DEPS-$(ENABLED)      = .lame .gsm .libvpx .zlib
+FFMPEG_DEPS-$(HAVE_WINCE)   = .zlib
+FFMPEG_DEPS-$(HAVE_UCLIBC)  =
+FFMPEG_DEPS-$(HAVE_IOS)     =
+FFMPEG_DEPS-$(HAVE_WIN64)   = .lame .gsm .zlib
+FFMPEG_DEPS-$(HAVE_ARMELF)  = .lame .gsm .zlib
+FFMPEG_DEPS-$(HAVE_MACOSX) += .yasm
+FFMPEG_DEPS-$(HAVE_WIN32)  += .dshow_headers
+FFMPEG_DEPS-$(HAVE_ANDROID) =
+FFMPEG_DEPS-$(HAVE_SYMBIAN) =
+
+.ffmpeg: ffmpeg $(FFMPEG_DEPS-1)
+       (cd ffmpeg; $(HOSTCC) ./configure --prefix=$(PREFIX) --extra-cflags="$(FFMPEG_CFLAGS) -DHAVE_STDINT_H" --extra-ldflags="$(LDFLAGS)" $(FFMPEGCONF) --disable-shared --enable-static && make && make install-libs install-headers)
        touch $@
 
-ifdef SVN
+ifdef GIT
 ffmpeg-source: ffmpeg
-       tar cv --exclude=.svn ffmpeg | bzip2 > ffmpeg-$(DATE).tar.bz2
+       tar cv --exclude=.git ffmpeg | bzip2 > ffmpeg-$(DATE).tar.bz2
 
 SOURCE += ffmpeg-source
 endif
 
 CLEAN_FILE += .ffmpeg
 CLEAN_PKG += ffmpeg
-DISTCLEAN_PKG += ffmpeg-$(FFMPEG_VERSION).tar.gz
 
 # ***************************************************************************
 # libdvdcss
@@ -1159,7 +1173,7 @@ DISTCLEAN_PKG += libdvdcss-$(LIBDVDCSS_VERSION).tar.bz2
 # libdvdread: We use dvdnav's dvdread
 # ***************************************************************************
 libdvdread:
-       $(SVN) co $(LIBDVDREAD_SVN)  libdvdread
+       $(SVN) co -r $(LIBDVDREAD_SVN_REV) $(LIBDVDREAD_SVN)  libdvdread
        (cd $@; patch  -p 0 < ../Patches/libdvdread-dvdcss-static.patch)
 ifdef HAVE_WIN32
        (cd $@; patch  -p 0 < ../Patches/libdvdread-win32.patch)
@@ -1181,7 +1195,7 @@ CLEAN_PKG += libdvdread
 
 ifdef SVN
 libdvdnav:
-       $(SVN) co $(LIBDVDNAV_SVN)  libdvdnav
+       $(SVN) co -r $(LIBDVDNAV_SVN_REV) $(LIBDVDNAV_SVN)  libdvdnav
        patch -d libdvdnav -p0 < Patches/libdvdnav.patch
        (cd $@; ./autogen.sh noconfig)
 else
@@ -1235,10 +1249,10 @@ libdvbpsi-$(LIBDVBPSI_VERSION).tar.gz:
 
 libdvbpsi: libdvbpsi-$(LIBDVBPSI_VERSION).tar.gz
        $(EXTRACT_GZ)
+       patch -p0 < Patches/libdvbpsi_example.patch
 
 .dvbpsi: libdvbpsi
-       (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && cd src && make && make install)
-       $(INSTALL_NAME)
+       (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --enable-release && cd src && make && make install)
        touch $@
 
 CLEAN_FILE += .dvbpsi
@@ -1254,6 +1268,7 @@ live555-$(LIVEDOTCOM_VERSION).tar.gz:
 
 live: live555-$(LIVEDOTCOM_VERSION).tar.gz
        $(EXTRACT_GZ)
+       chmod -R u+w live
        patch -p0 < Patches/live-uselocale.patch
        patch -p0 < Patches/live-inet_ntop.patch
 ifdef HAVE_WIN64
@@ -1265,34 +1280,33 @@ ifndef HAVE_WINCE
 endif
 endif
 
-.live: live
-ifdef HAVE_WIN32
-       (cd $<;./genMakefiles mingw && make $(HOSTCC))
-else
-ifdef HAVE_WINCE
-       (cd $<; sed -e 's/-lws2_32/-lws2/g' -i.orig config.mingw)
-       (cd $<;./genMakefiles mingw && make $(HOSTCC))
-else
-ifdef HAVE_DARWIN_OS
-       (cd $<; sed -e 's%-DBSD=1%-DBSD=1\ $(EXTRA_CFLAGS)\ $(EXTRA_LDFLAGS)%' -e 's%cc%$(CC)%'  -e 's%c++%$(CXX)\ $(EXTRA_LDFLAGS)%' -i.orig  config.macosx)
-       (cd $<; ./genMakefiles macosx && make)
-else
-       (cd $<; sed -e 's/=/= EXTRA_CPPFLAGS/' -e 's%EXTRA_CPPFLAGS%-I/include%' -i.orig groupsock/Makefile.head)
-ifdef HAVE_UCLIBC
-ifdef HAVE_BIGENDIAN
-       (cd $<; ./genMakefiles armeb-uclibc && make $(HOSTCC))
-endif
-else
+LIVE_TARGET-$(ENABLED)        = linux
+LIVE_TARGET-$(HAVE_WIN32)     = mingw
+LIVE_TARGET-$(HAVE_WINCE)     = mingw
+LIVE_TARGET-$(HAVE_DARWIN_OS) = macosx
+
 ifeq ($(ARCH)$(HAVE_MAEMO),armel)
-       (cd $<; ./genMakefiles armlinux && make $(HOSTCC))
-else
-       (cd $<; sed -e 's%-D_FILE_OFFSET_BITS=64%-D_FILE_OFFSET_BITS=64\ -fPIC\ -DPIC%' -i.orig config.linux)
-       (cd $<; ./genMakefiles linux && make $(HOSTCC))
-endif
+LIVE_TARGET-$(ENABLED)        = armlinux
 endif
+
+ifdef HAVE_BIGENDIAN
+LIVE_TARGET-$(HAVE_UCLIBC)    = armeb-uclib
 endif
+
+LIVE_PATCH-$(ENABLED)        =
+LIVE_PATCH-$(HAVE_WINCE)     = sed -e 's/-lws2_32/-lws2/g' -i.orig config.mingw
+LIVE_PATCH-$(HAVE_DARWIN_OS) = sed -e 's%-DBSD=1%-DBSD=1\ $(EXTRA_CFLAGS)\ $(EXTRA_LDFLAGS)%' -e 's%cc%$(CC)%'  -e 's%c++%$(CXX)\ $(EXTRA_LDFLAGS)%' -i.orig  config.macosx
+LIVE_PATCH-$(HAVE_LINUX)     = sed -e 's/=/= EXTRA_CPPFLAGS/' -e 's%EXTRA_CPPFLAGS%-I/include%' -i.orig groupsock/Makefile.head
+
+ifndef HAVE_UCLIBC
+ifneq ($(ARCH)$(HAVE_MAEMO),armel)
+LIVE_PATCH-$(HAVE_LINUX)    += ; sed -e 's%-D_FILE_OFFSET_BITS=64%-D_FILE_OFFSET_BITS=64\ -fPIC\ -DPIC%' -i.orig config.linux
 endif
 endif
+
+.live: live
+       (cd $<; $(LIVE_PATCH-1) )
+       (cd $<; ./genMakefiles $(LIVE_TARGET-1) && make $(HOSTCC))
        mkdir -p $(PREFIX)/lib $(PREFIX)/include
        cp $</groupsock/libgroupsock.a $(PREFIX)/lib
        cp $</liveMedia/libliveMedia.a $(PREFIX)/lib
@@ -1326,9 +1340,11 @@ else
 endif
        patch -p0 < Patches/goom2k4-0-memleaks.patch
        patch -p0 < Patches/goom2k4-autotools.patch
-ifdef HAVE_DARWIN
+ifdef HAVE_MACOSX
        patch -p0 < Patches/goom2k4-osx.patch
 endif
+       patch -p0 < Patches/goom2k4-noxmmx.patch
+       patch -p0 < Patches/goom2k4-xmmslibdir.patch
        (cd $@; rm -f configure; autoreconf -ivf)
 
 .goom2k4: goom
@@ -1348,7 +1364,7 @@ libcaca-$(LIBCACA_VERSION).tar.gz:
 
 libcaca: libcaca-$(LIBCACA_VERSION).tar.gz
        $(EXTRACT_GZ)
-ifdef HAVE_DARWIN_OS
+ifdef HAVE_MACOSX
        patch -p0 < Patches/libcaca-osx-sdkofourchoice.patch
        (cd $@; sed -e 's%/Developer/SDKs/MacOSX10.4u.sdk%$(MACOSX_SDK)%' -i.orig  configure)
 endif
@@ -1358,7 +1374,7 @@ endif
 
 
 .caca: libcaca
-ifdef HAVE_DARWIN_OS
+ifdef HAVE_MACOSX
        (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-imlib2 --disable-doc --disable-ruby --disable-csharp --disable-cxx --disable-x11 && cd caca && make && make install)
 else
        (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-imlib2 --disable-doc --disable-ruby --disable-csharp --disable-cxx && cd caca && make && make install)
@@ -1378,7 +1394,7 @@ libdca-$(LIBDCA_VERSION).tar.bz2:
 
 libdca: libdca-$(LIBDCA_VERSION).tar.bz2
        $(EXTRACT_BZ2)
-ifdef HAVE_DARWIN_9
+ifdef HAVE_MACOSX_DARWIN_9
        ( cd $@; patch -p0 < ../Patches/libdca-llvm-gcc.patch )
 endif
 
@@ -1395,18 +1411,30 @@ DISTCLEAN_PKG += libdca-$(LIBDCA_VERSION).tar.bz2
 # libx264
 # ***************************************************************************
 
+ifdef HAVE_MACOSX
+X264CONF =--host=$(HOST)
+X264CONF += --enable-pic
+ifdef HAVE_MACOSX64
+X264CONF +=--host=x86_64-apple-darwin10
+endif
+endif
+
+ifdef HAVE_CROSS_COMPILE_NEEDS_CROSS_PREFIX
+X264CONF=--host=$(HOST)
+endif
+
+ifdef HAVE_LINUX
+X264CONF += --enable-pic
+endif
+
+X264CONF += --disable-avs --disable-lavf --disable-ffms --enable-static --disable-cli
+
 x264-$(X264_VERSION).tar.gz:
        $(WGET) $(X264_URL)
 
 ifdef GIT
 x264:
        $(GIT) clone git://git.videolan.org/x264.git
-ifdef HAVE_WIN32
-       (cd x264; patch -p0 < ../Patches/x264-svn-win32.patch )
-endif
-ifdef HAVE_WIN64
-       (cd x264; patch -p0 < ../Patches/x264-svn-win64.patch )
-endif
 else
 x264:
        echo "x264 snapshot is too old, you MUST use Git !"
@@ -1415,14 +1443,10 @@ x264:
 endif
 
 ifdef HAVE_WIN32
-.x264: x264 .pthreads
-  ifdef HAVE_CYGWIN
-       (cd $<; $(HOSTCC) RANLIB="ranlib" AR="ar" STRIP="strip" ./configure $(X264CONF) --prefix="$(PREFIX)" --extra-cflags="-I$(PREFIX)/include" --extra-ldflags="-L$(PREFIX)/lib" && make && make install)
-  else
-       (cd $<; $(HOSTCC) ./configure $(X264CONF) --prefix="$(PREFIX)" && make && make install)
-  endif
+.x264: x264
+       (cd $<; $(HOSTCC) ./configure $(X264CONF) --prefix="$(PREFIX)" --enable-win32thread && make && make install)
 else
-ifdef HAVE_DARWIN_OS_ON_INTEL
+ifdef HAVE_MACOSX_ON_INTEL
   .x264: x264 .yasm
        (cd $<; $(HOSTCC) ./configure $(X264CONF) --prefix="$(PREFIX)" && make && make install)
 else
@@ -1471,18 +1495,29 @@ libcddb-$(CDDB_VERSION).tar.bz2:
 
 libcddb: libcddb-$(CDDB_VERSION).tar.bz2
        $(EXTRACT_BZ2)
+ifneq ($(HOST),$(BUILD))
        (cd $@; patch -p0 < ../Patches/libcddb-cross.patch )
+       (cd $@; autoreconf -fisv)
+endif
 ifdef HAVE_WIN32
        (cd $@; patch -p0 < ../Patches/libcddb-win32.patch )
 endif
-       (cd $@; autoreconf -fisv)
+ifdef HAVE_DARWIN_OS
+       (cd $@; patch -p0 < ../Patches/libcddb-darwin.patch )
+endif
+       patch -p0 < Patches/libcddb-getenv-crash.patch
 
 ifdef HAVE_WIN32
 .cddb: libcddb .regex
        (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static --without-iconv CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" && make && make install)
 else
+ifdef HAVE_DARWIN_OS
+.cddb: libcddb
+       (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static --without-iconv CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" LDFLAGS="$(LDFLAGS)" && make && make install)
+else
 .cddb: libcddb
        (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared --enable-static CFLAGS="$(CFLAGS) -D_BSD_SOCKLEN_T_=int" LDFLAGS="$(LDFLAGS) -liconv" && make && make install)
+endif
 endif
        touch $@
 
@@ -1501,7 +1536,7 @@ vcdimager: vcdimager-$(VCDIMAGER_VERSION).tar.gz
        $(EXTRACT_GZ)
 
 .vcdimager: vcdimager .cdio
-ifdef HAVE_DARWIN_OS
+ifdef HAVE_MACOSX
        (cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static LDFLAGS="$(LDFLAGS) -framework CoreFoundation -framework IOKit" && make && make install)
 else
        (cd $<; ./configure --prefix=$(PREFIX) --disable-shared --enable-static && make && make install)
@@ -1522,12 +1557,16 @@ libcdio-$(CDIO_VERSION).tar.gz:
 libcdio: libcdio-$(CDIO_VERSION).tar.gz
        $(EXTRACT_GZ)
        patch -p0 < Patches/libcdio-install-cdparanoia-pc.patch
-ifdef HAVE_DARWIN_OS
+ifdef HAVE_MACOSX
        patch -p0 < Patches/libcdio-modernOSX.patch
 endif
 
 .cdio: libcdio
+ifdef HAVE_DARWIN_OS
+       (cd $<; ./configure --prefix=$(PREFIX) --without-vcdinfo --disable-shared && make && make install && sed -e 's%/usr/lib/libiconv.la%%' -i.orig $(PREFIX)/lib/libcdio.la && sed -e 's%/usr/lib/libiconv.la%%' -i.orig $(PREFIX)/lib/libiso9660.la)
+else
        (cd $<; sed -e 's%@ENABLE_CPP_TRUE@SUBDIRS = C++%@ENABLE_CPP_TRUE@SUBDIRS = %' -i.orig example/Makefile.in && autoreconf -fisv && ./configure --prefix=$(PREFIX) --without-vcdinfo --disable-shared && make && make install)
+endif
        touch $@
 
 CLEAN_FILE += .cdio
@@ -1559,55 +1598,22 @@ CLEAN_PKG += qt4_win32
 DISTCLEAN_PKG += qt4-$(QT4_VERSION)-win32-bin.tar.bz2
 
 # ***************************************************************************
-# qt4 (trolltech binaries)
+# qt4 (Mac)
 # ***************************************************************************
-
-qt-win-opensource-$(QT4T_VERSION)-mingw.exe:
-       wget $(QT4T_URL)
-
-Qt_win32: qt-win-opensource-$(QT4T_VERSION)-mingw.exe
-       mkdir Qt
-       7z -oQt x qt-win-opensource-$(QT4T_VERSION)-mingw.exe \$$OUTDIR/bin\ /bin \$$OUTDIR/bin\ /lib \$$OUTDIR/bin\ /include/QtCore \$$OUTDIR/bin\ /include/QtGui \$$OUTDIR/bin\ /src/gui \$$OUTDIR/bin\ /src/corelib \$$OUTDIR/bin\ /translations
-       mv Qt/\$$OUTDIR/bin\ /* Qt/ && rmdir Qt/\$$OUTDIR/bin\  Qt/\$$OUTDIR
-       find Qt -name '* ' -exec sh -c "mv \"{}\" `echo {}`" \;
-       find Qt/src -name '*.cpp' -exec rm {} \;
-       find Qt/translations -type f -a ! -name 'qt_*.qm' -exec rm {} \;
-       find Qt/include -name '*.h' -exec sh -c "mv {} {}.tmp; sed 's,..\/..\/src,..\/src,' {}.tmp > {}; rm -f {}.tmp" \;
-       mkdir Qt/lib/pkgconfig
-       sed -e s,@@VERSION@@,$(QT4T_VERSION), -e s,@@PREFIX@@,$(PREFIX), Patches/QtCore.pc.in > Qt/lib/pkgconfig/QtCore.pc
-       sed -e s,@@VERSION@@,$(QT4T_VERSION), -e s,@@PREFIX@@,$(PREFIX), Patches/QtGui.pc.in > Qt/lib/pkgconfig/QtGui.pc
-
-.Qt_win32: Qt_win32
-       mkdir -p $(PREFIX)/bin $(PREFIX)/include/qt4/src $(PREFIX)/lib/pkgconfig $(PREFIX)/share/qt4/translations
-       cp Qt/bin/moc.exe Qt/bin/rcc.exe Qt/bin/uic.exe $(PREFIX)/bin
-       cp -r Qt/include/QtCore Qt/include/QtGui $(PREFIX)/include/qt4
-       cp -r Qt/src/corelib Qt/src/gui $(PREFIX)/include/qt4/src
-       cp Qt/lib/libQtCore4.a Qt/lib/libQtGui4.a $(PREFIX)/lib
-       cp Qt/lib/pkgconfig/* $(PREFIX)/lib/pkgconfig
-       cp Qt/translations/* $(PREFIX)/share/qt4/translations
-       touch $@
-
-CLEAN_FILE += .Qt_win32
-CLEAN_PKG += Qt_win32
-DISTCLEAN_PKG += qt-win-opensource-$(QT4T_VERSION)-mingw.exe
-
-# ***************************************************************************
-# qt4 (source-code compilation for Mac)
-# ***************************************************************************
-
-qt-everywhere-opensource-src-$(QT4_MAC_VERSION).tar.gz:
+qt-mac-opensource-$(QT4_MAC_VERSION).dmg: 
        $(WGET) $(QT4_MAC_URL)
 
-qt4_mac: qt-everywhere-opensource-src-$(QT4_MAC_VERSION).tar.gz
-       $(EXTRACT_GZ)
+qt4_mac: qt-mac-opensource-$(QT4_MAC_VERSION).dmg
 
 .qt4_mac: qt4_mac
-       (cd qt4_mac; ./configure -prefix $(PREFIX) -release -fast -no-qt3support -nomake "examples demos" -sdk $(MACOSX_SDK) -no-framework -arch $(ARCH) && make && make install)
+       cp Patches/QtCoreMac.pc.in $(PREFIX)/lib/pkgconfig/QtCore.pc
+       cp Patches/QtGuiMac.pc.in $(PREFIX)/lib/pkgconfig/QtGui.pc
        touch $@
 
 CLEAN_FILE += .qt4_mac
 CLEAN_PKG += qt4_mac
-DISTCLEAN_PKG += qt-mac-opensource-src-$(QT4_MAC_VERSION).tar.gz
+DISTCLEAN_PKG += qt-mac-opensource-$(QT4_MAC_VERSION).dmg
 
 # ***************************************************************************
 # zlib
@@ -1634,10 +1640,10 @@ DISTCLEAN_PKG += zlib-$(ZLIB_VERSION).tar.gz
 # PortAudio
 # ***************************************************************************
 
-pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz:
+pa_stable_v$(PORTAUDIO_VERSION).tgz:
        $(WGET) $(PORTAUDIO_URL)
 
-portaudio: pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz
+portaudio: pa_stable_v$(PORTAUDIO_VERSION).tgz
        $(EXTRACT_GZ)
 ifneq ($(HOST),$(BUILD))
        (patch -p0 < Patches/portaudio-cross.patch;cd $@;  autoconf)
@@ -1654,7 +1660,7 @@ endif
 
 CLEAN_FILE += .portaudio
 CLEAN_PKG += portaudio
-DISTCLEAN_PKG += pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz
+DISTCLEAN_PKG += pa_stable_v$(PORTAUDIO_VERSION).tgz
 
 # ***************************************************************************
 # xml
@@ -1677,7 +1683,7 @@ XMLCONF = --with-minimal --with-catalog --with-reader --with-tree --with-push --
   else
        (cd xml; CFLAGS="-DLIBXML_STATIC" $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(XMLCONF) && make && make install)
   endif
-ifndef HAVE_DARWIN_OS
+ifndef HAVE_MACOSX
        $(INSTALL_NAME)
 endif
        touch $@
@@ -1725,7 +1731,7 @@ endif
        (patch -p0 < Patches/libpng-makefile.patch)
 
 .png: libpng .zlib
-ifdef HAVE_DARWIN_OS
+ifdef HAVE_MACOSX
        (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
 else
 ifdef HAVE_WIN32
@@ -1763,7 +1769,7 @@ ifdef HAVE_WIN32
 else
 .zvbi: zvbi
 endif
-ifdef HAVE_DARWIN_OS
+ifdef HAVE_MACOSX
        (cd $<; ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -fnested-functions" && make && make install)
 else
 ifdef HAVE_WIN32
@@ -1790,7 +1796,7 @@ libraw1394: libraw1394-$(LIBRAW1394_VERSION).tar.gz
        $(EXTRACT_GZ)
 
 .raw1394: libraw1394
-       (cd $<; ./configure --prefix=$(PREFIX) && make && make DESTDIR=$(PREFIX) install)
+       (cd $<; ./configure --prefix=$(PREFIX) && make && make install)
 #      sed 's/^typedef u_int8_t  byte_t;/\/* typedef u_int8_t  byte_t;\*\//'
        touch $@
 
@@ -1901,9 +1907,9 @@ endif
 
 .gnutls: gnutls .gcrypt .gpg-error
 ifdef HAVE_WIN32
-       (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --target=i586-mingw32msvc --disable-cxx -disable-shared --enable-static --disable-nls --with-included-opencdk --with-included-libtasn1 &&  cd gl && make && cd ../lib && make && make install )
+       (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --with-libgcrypt --target=i586-mingw32msvc --disable-cxx -disable-shared --enable-static --disable-nls --with-included-opencdk --with-included-libtasn1 &&  cd gl && make && cd ../lib && make && make install )
 else
-       (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --disable-cxx --with-included-opencdk --disable-guile && make && make install)
+       (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" --with-libgcrypt  --disable-cxx --with-included-opencdk --disable-guile && make && make install)
 endif
        $(INSTALL_NAME)
        touch $@
@@ -1996,7 +2002,7 @@ DISTCLEAN_PKG += tiff-$(TIFF_VERSION).tar.gz
 # LibSDL
 # ***************************************************************************
 
-ifndef HAVE_DARWIN_OS
+ifndef HAVE_MACOSX
 SDL-$(SDL_VERSION).tar.gz:
        $(WGET) $(SDL_URL)
 
@@ -2009,7 +2015,7 @@ SDL:
 endif
 
 .SDL: SDL
-       (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-audio --disable-video-x11 --disable-video-aalib --disable-video-dga --disable-video-fbcon --disable-video-directfb --disable-video-ggi --disable-video-svga --disable-directx --enable-joystick --disable-cdrom --disable-threads --disable-sdl-dlopen CFLAGS="$(CFLAGS)" && make && make install)
+       (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-video-x11 --disable-video-aalib --disable-video-dga --disable-video-fbcon --disable-video-directfb --disable-video-ggi --disable-video-svga --disable-directx --disable-joystick --disable-cdrom --disable-threads --disable-sdl-dlopen CFLAGS="$(CFLAGS)" && make && make install)
        $(INSTALL_NAME)
        touch $@
 
@@ -2041,22 +2047,21 @@ DISTCLEAN_PKG += SDL_image-$(SDL_IMAGE_VERSION).tar.gz
 # Musepack decoder library (libmpcdec)
 # ***************************************************************************
 
-libmpcdec-$(MUSE_VERSION).tar.bz2:
-       $(WGET) $(MUSE_URL)
-
-mpcdec: libmpcdec-$(MUSE_VERSION).tar.bz2
-       $(EXTRACT_BZ2)
-       patch -p0 < Patches/mpcdec.patch
-       (cd $@; autoreconf -ivf)
+mpcdec:
+       $(SVN) co $(MUSE_SVN) -r 468 mpcdec
+       (cd $@; patch -p0 < ../Patches/libmpc-simple.patch)
+ifdef HAVE_MACOSX
+       (cd $@; sed -e 's%-O3 -Wall%-O3 -Wall $(CFLAGS)%' -i.orig  CMakeLists.txt)
+endif
 
 .mpcdec: mpcdec
+       (cd $<; cmake . -DCMAKE_TOOLCHAIN_FILE=../../toolchain.cmake -DCMAKE_INSTALL_PREFIX=$(PREFIX) && make install)
 ifdef HAVE_WIN32
-       (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS=-D_PTRDIFF_T=mpc_int32_t && make && make install)
-else
-       (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
+       (cd $<; mkdir -p $(PREFIX)/lib && cp libmpcdec/libmpcdec_static.a $(PREFIX)/lib/libmpcdec.a)
 endif
-ifdef HAVE_DARWIN_OS
-       $(INSTALL_NAME)
+ifdef HAVE_MACOSX
+       (cd $<; mkdir -p $(PREFIX)/lib && cp libmpcdec/libmpcdec.dylib $(PREFIX)/lib/libmpcdec.dylib)
+       (install_name_tool -id $(PREFIX)/lib/libmpcdec.dylib $(PREFIX)/lib/libmpcdec.dylib)
 endif
        touch $@
 
@@ -2107,19 +2112,19 @@ DISTCLEAN_PKG += dirac-$(DIRAC_VERSION).tar.gz
 # *************************************************************************
 # DirectX headers
 # *************************************************************************
-win32-dx7headers.tgz:
+directx-oss.tar.bz2:
        $(WGET) $(DX_HEADERS_URL)
-.dx_headers: win32-dx7headers.tgz
+.dx_headers: directx-oss.tar.bz2
        mkdir -p $(PREFIX)/include
-       tar xzf $< -C $(PREFIX)/include
+       tar xjf $< -C $(PREFIX)/include
        touch $@
 CLEAN_FILE += .dx_headers
-DISTCLEAN_PKG += win32-dx7headers.tgz
+DISTCLEAN_PKG += directx-oss.tar.bz2
 
 # *************************************************************************
 # DirectShow headers
 # *************************************************************************
-dshow-headers.tgz:
+dshow-headers-oss.tar.bz2:
        $(WGET) $(DSHOW_HEADERS_URL)
 
 dxva2api.h:
@@ -2130,15 +2135,15 @@ CLEAN_FILE += dxva2api.h
 d2d_headers.tar.gz:
        $(WGET) $(D2D_URL) -O $@
 
-.dshow_headers: dshow-headers.tgz dxva2api.h d2d_headers.tar.gz
+.dshow_headers: dshow-headers-oss.tar.bz2 dxva2api.h d2d_headers.tar.gz
        mkdir -p $(PREFIX)/include
-       tar xzf $< -C $(PREFIX)/include
+       tar xjf $< -C $(PREFIX)/include --wildcards --no-anchored '*.h' --strip-components=1
        tar xzf d2d_headers.tar.gz -C $(PREFIX)/include --wildcards --no-anchored '*.h' --strip-components=1
        cp dxva2api.h $(PREFIX)/include
        touch $@
 
 CLEAN_FILE += .dshow_headers
-DISTCLEAN_PKG += dshow-headers.tgz dxva2api.h
+DISTCLEAN_PKG += dshow-headers-oss.tar.bz2 dxva2api.h
 
 # ***************************************************************************
 # libexpat
@@ -2206,7 +2211,7 @@ libtiger: libtiger-$(TIGER_VERSION).tar.gz
        $(EXTRACT_GZ)
 
 .tiger: libtiger .kate
-       (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
+       (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-valgrind --disable-doc && make && make install)
        $(INSTALL_NAME)
        touch $@
 
@@ -2223,6 +2228,9 @@ taglib-$(TAGLIB_VERSION).tar.gz:
 
 taglib: taglib-$(TAGLIB_VERSION).tar.gz
        $(EXTRACT_GZ)
+ifdef HAVE_ANDROID
+       patch -p0 < Patches/taglib-android.patch
+endif
 ifdef HAVE_WIN32
        patch -p0 < Patches/taglib-static.patch
 endif
@@ -2231,7 +2239,7 @@ ifdef HAVE_CYGWIN
 endif
 
 .tag: taglib
-       (cd $<; $(HOSTCC)  ./configure $(HOSTCONF) --enable-mp4 --enable-asf --prefix=$(PREFIX) && make && make install)
+       (cd $<; $(HOSTCC) CPPFLAGS="$(CPPFLAGS)" cmake . -DCMAKE_TOOLCHAIN_FILE=../../toolchain.cmake -DCMAKE_INSTALL_PREFIX=$(PREFIX) -DENABLE_STATIC:BOOL=ON -DWITH_ASF:BOOL=ON -DWITH_MP4:BOOL=ON && make && make install)
        $(INSTALL_NAME)
        touch $@
 
@@ -2243,6 +2251,10 @@ DISTCLEAN_PKG += taglib-$(TAGLIB_VERSION).tar.gz
 # pthreads for win32
 # ***************************************************************************
 
+ifdef HAVE_CROSS_COMPILE_NEEDS_CROSS_PREFIX
+PTHREADSCONF=CROSS="$(HOST)-"
+endif
+
 pthreads-w32-$(PTHREADS_VERSION)-release.tar.gz:
        $(WGET) $(PTHREADS_URL)
 
@@ -2255,7 +2267,7 @@ ifdef HAVE_WIN64
 endif
 
 .pthreads: pthreads
-       (cd $<; $(HOSTCC) $(PTHREADSCONF) make MAKEFLAGS=-j1 GC GC-static && mkdir -p $(PREFIX)/include && cp -v pthread.h sched.h semaphore.h $(PREFIX)/include/ && mkdir -p $(PREFIX)/lib && cp -v *.a *.dll $(PREFIX)/lib/)
+       (cd $<; $(HOSTCC) $(PTHREADSCONF) make MAKEFLAGS=-j1 GC GC-static && mkdir -p $(PREFIX)/include && cp -v pthread.h sched.h semaphore.h $(PREFIX)/include/ && sed -i 's/#if HAVE_CONFIG_H/#if 0 \&\& HAVE_CONFIG_H/' $(PREFIX)/include/pthread.h && mkdir -p $(PREFIX)/lib && cp -v *.a *.dll $(PREFIX)/lib/)
        $(INSTALL_NAME)
        touch $@
 
@@ -2326,9 +2338,10 @@ orc-$(ORC_VERSION).tar.gz:
 
 orc: orc-$(ORC_VERSION).tar.gz
        $(EXTRACT_GZ)
+       patch -p0 < Patches/orc-stdint.patch
 
 .orc: orc
-ifdef HAVE_DARWIN_OS
+ifdef HAVE_MACOSX
        (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)")
 else
        (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX))
@@ -2364,20 +2377,20 @@ DISTCLEAN_PKG += schroedinger-$(SCHROED_VERSION).tar.gz
 # libass
 # ***************************************************************************
 
-libass-$(ASS_VERSION).tar.bz2:
+libass-$(ASS_VERSION).tar.gz:
        $(WGET) $(ASS_URL)
 
-libass: libass-$(ASS_VERSION).tar.bz2
-       $(EXTRACT_BZ2)
+libass: libass-$(ASS_VERSION).tar.gz
+       $(EXTRACT_GZ)
        (cd $@; autoreconf -ivf)
 
-.libass: libass .freetype
+.libass: libass .freetype .fontconfig
        (cd $<; $(HOSTCC) ./configure --disable-png --disable-shared $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -O3" && make && make install)
        touch $@
 
 CLEAN_FILE += .libass
 CLEAN_PKG += libass
-DISTCLEAN_PKG += libass-$(ASS_VERSION).tar.bz2
+DISTCLEAN_PKG += libass-$(ASS_VERSION).tar.gz
 
 # ***************************************************************************
 # Sparkle
@@ -2397,6 +2410,42 @@ CLEAN_FILE += .Sparkle
 CLEAN_PKG += Sparkle
 DISTCLEAN_PKG += Sparkle-$(SPARKLE_VERSION).zip
 
+# ***************************************************************************
+# BGHUDAppKit
+# ***************************************************************************
+
+BGHUDAppKit-$(BGHUDAPPKIT_VERSION).zip:
+       $(WGET) $(BGHUDAPPKIT_URL)
+
+.BGHUDAppKit: BGHUDAppKit-$(BGHUDAPPKIT_VERSION).zip
+       rm -rf $@ || true
+       (mkdir BGHUDAppKit && cd BGHUDAppKit && unzip ../$<)
+       rm -rf $(PREFIX)/BGHUDAppKit
+       mv BGHUDAppKit $(PREFIX)
+       touch $@
+
+CLEAN_FILE += .BGHUDAppKit
+CLEAN_PKG += BGHUDAppKit
+DISTCLEAN_PKG += BGHUDAppKit-$(BGHUDAPPKIT_VERSION).zip
+
+# ***************************************************************************
+# Growl
+# ***************************************************************************
+
+Growl-$(GROWL_VERSION).zip:
+       $(WGET) $(GROWL_URL)
+
+.Growl: Growl-$(GROWL_VERSION).zip
+       rm -rf $@ || true
+       (mkdir Growl && cd Growl && unzip ../$<)
+       rm -rf $(PREFIX)/Growl
+       mv Growl $(PREFIX)
+       touch $@
+
+CLEAN_FILE += .Growl
+CLEAN_PKG += Growl
+DISTCLEAN_PKG += Growl-$(GROWL_VERSION).zip
+
 # ***************************************************************************
 # UPNP library
 # ***************************************************************************
@@ -2406,18 +2455,21 @@ libupnp-$(UPNP_VERSION).tar.bz2:
 
 libupnp: libupnp-$(UPNP_VERSION).tar.bz2
        $(EXTRACT_BZ2)
-       patch -p0 < Patches/libupnp-mingw.patch
 ifdef HAVE_WIN32
-       patch -p0 < Patches/libupnp-win32.patch
        patch -p0 < Patches/libupnp-configure.patch
-       cd $@; libtoolize&& autoreconf
+       patch -p0 < Patches/libupnp-win32.patch
 endif
+       cd $@; libtoolize && autoreconf
 
 ifdef HAVE_WIN32
 LIBUPNP_ECFLAGS=-DPTW32_STATIC_LIB
 endif
 
+ifdef HAVE_WIN32
+.libupnp: libupnp .pthreads
+else
 .libupnp: libupnp
+endif
        (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-samples --without-documentation --enable-static --disable-webserver CFLAGS="$(CFLAGS) -O3 -DUPNP_STATIC_LIB $(LIBUPNP_ECFLAGS)" && make && make install)
        touch $@
 
@@ -2438,9 +2490,10 @@ gsm: gsm-$(GSM_VERSION).tar.gz
 ifneq ($(HOST),$(BUILD))
        (patch -p0 < Patches/gsm-cross.patch)
 endif
-ifdef HAVE_DARWIN_OS
+ifdef HAVE_MACOSX
        (cd $@; sed -e 's%-O2%-O2\ $(EXTRA_CFLAGS)\ $(EXTRA_LDFLAGS)%' -e 's%# LDFLAGS  =%LDFLAGS       = $(EXTRA_LDFLAGS)%' -e 's%gcc%$(CC)%' -i.orig  Makefile)
 endif
+       (cd $@; sed -i -e 's%-O2%-O2 -fPIC%' Makefile)
 
 .gsm: gsm
        (cd $<; $(HOSTCC) make && mkdir -p $(PREFIX)/include/gsm && cp inc/gsm.h $(PREFIX)/include/gsm && cp lib/libgsm.a  $(PREFIX)/lib)
@@ -2451,7 +2504,7 @@ CLEAN_PKG += gsm
 DISTCLEAN_PKG += gsm-$(GSM_VERSION).tar.gz
 
 # ***************************************************************************
-### GLEW 
+### GLEW
 # ***************************************************************************
 glew-$(GLEW_VERSION)-src.tgz:
        $(WGET) $(GLEW_URL)
@@ -2627,6 +2680,35 @@ CLEAN_FILE += .gme
 CLEAN_PKG  += game-music-emu-$(GME_VERSION)
 DISTCLEAN_PKG += game-music-emu-$(GME_VERSION).tbz2
 
+# ********************************
+# SidPlay2
+# ********************************
+sidplay-libs-2.1.1.tar.gz:
+       $(WGET) $(SID_URL)
+
+sidplay-2.1.1: sidplay-libs-2.1.1.tar.gz
+       $(EXTRACT_GZ)
+       (cd $@; patch -p1 < ../Patches/sidplay2-openmode.patch)
+       (cd $@; patch -p1 < ../Patches/sidplay2-endian.patch)
+       (cd $@; patch -p1 < ../Patches/sidplay2-smartprt.patch)
+       (cd $@; patch -p1 < ../Patches/sidplay2-noutils.patch)
+       (cd $@; patch -p1 < ../Patches/sidplay2-string.patch)
+       (cd $@; autoreconf -ivf)
+
+.sidplay: sidplay-2.1.1
+       (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
+       (cp -f $(PREFIX)/lib/sidplay/builders/* $(PREFIX)/lib/)
+       touch $@
+
+CLEAN_FILE += .sidplay
+CLEAN_PKG  += sidplay-2.1.1
+DISTCLEAN_PKG += sidplay-libs-2.1.1.tar.gz
+
+
+###################################
+
+tools: $(TOOLS)
+
 # ***************************************************************************
 # Some cleaning
 # ***************************************************************************
@@ -2641,7 +2723,7 @@ clean-src: clean
        rm -rf $(DISTCLEAN_PKG)
 
 clean-svn:
-       rm -rf ffmpeg tremor x264 libdca pa_snapshot_v$(PORTAUDIO_VERSION).tar.gz portaudio live555-$(LIVEDOTCOM_VERSION).tar.gz live libass
+       rm -rf ffmpeg tremor x264 libdca pa_stable_v$(PORTAUDIO_VERSION).tar.gz portaudio live555-$(LIVEDOTCOM_VERSION).tar.gz live libass
 
 distclean: clean-src