]> git.sesse.net Git - vlc/blobdiff - extras/contrib/src/contrib-src.mak
Contrib: fix upnp compilation on win64
[vlc] / extras / contrib / src / contrib-src.mak
index d90f4778722b6d942007a8fc60ba52c2702a39e1..2a28a7dfb4303ebc67b39f20f32269a87333621c 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,11 +35,16 @@ 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)
@@ -83,13 +88,6 @@ ifeq ($(RANLIB),)
 RANLIB=ranlib
 endif
 
-# For libebml/libmatroska. Grrr.
-ifneq ($(AR),)
-HOSTCC2=$(HOSTCC) AR="$(AR) rcvu"
-else
-HOSTCC2=$(HOSTCC)
-endif
-
 # Just a shortcut for readability
 ENABLED=1
 
@@ -178,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
@@ -304,7 +302,7 @@ 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
@@ -400,7 +398,7 @@ FONTCONFIG_BASE_CONF = --prefix=$(PREFIX) \
 
 FONTCONFIG_CONF-$(ENABLED)      = $(HOSTCONF) $(FONTCONFIG_BASE_CONF)
 FONTCONFIG_CONF-$(HAVE_MACOSX) += $(HOSTCONF) \
-       --with-cache-dir=/usr/X11/var/cache/fontconfig \
+       --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  \
@@ -418,7 +416,7 @@ 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)
+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))
@@ -518,24 +516,6 @@ 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
 # ***************************************************************************
@@ -557,7 +537,7 @@ 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 $< && 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
@@ -660,7 +640,7 @@ tremor: tremor-$(TREMOR_VERSION).tar.bz2
 endif
 
 .tremor: tremor .ogg
-       (cd $<; ACLOCAL="aclocal -I $(PREFIX)/share/aclocal/" autoreconf && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-shared CFLAGS="$(NOTHUMB)" && make && make install)
+       (cd $<; $(HOSTCC) ./autogen.sh $(HOSTCONF) --prefix=$(PREFIX) --disable-shared CFLAGS="$(NOTHUMB)" && make && make install)
        $(INSTALL_NAME)
        touch $@
 
@@ -756,21 +736,16 @@ endif
 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
-
-.flac: flac .ogg
 ifdef HAVE_MACOSX_ON_INTEL
-       cd $< && \
-       $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-asm-optimizations $(FLAC_DISABLE_FLAGS)
-else
-       cd $< && \
-       $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX)  $(FLAC_DISABLE_FLAGS)
+FLAC_DISABLE_FLAGS += --disable-asm-optimizations
 endif
-       cd $</src && \
-       make -C libFLAC && \
-       echo 'Requires.private: ogg' >> libFLAC/flac.pc && \
-       make -C libFLAC install
+
+.flac: flac .ogg
+       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 $@
@@ -833,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 $@
@@ -871,26 +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
 CROSS=$(HOST)-
 endif
 
-VPX_TARGET-$(ENABLED)              = FIXME
-VPX_TARGET-$(HAVE_WIN32)           = x86-win32-gcc
-VPX_TARGET-$(HAVE_DARWIN_OS)       = ppc32-darwin9-gcc
-VPX_TARGET-$(HAVE_MACOSX_ON_INTEL) = x86-darwin9-gcc
-VPX_TARGET-$(HAVE_MACOSX64)        = x86_64-darwin9-gcc
+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 --target=$(VPX_TARGET-1) --disable-install-bins --disable-install-srcs --disable-install-libs --disable-install-docs --disable-examples --disable-vp8-decoder && make && make install)
+       (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?
@@ -898,7 +874,7 @@ VPX_DEPS-$(HAVE_MACOSX_ON_INTEL) += .yasm
 
 CLEAN_FILE += .libvpx
 CLEAN_PKG += libvpx
-#DISTCLEAN_PKG += libvpx-$(VPX_VERSION).tar.bz2
+DISTCLEAN_PKG += libvpx-$(VPX_VERSION).tar.bz2
 
 # ***************************************************************************
 # lame
@@ -957,46 +933,53 @@ CLEAN_PKG += libamrwb
 DISTCLEAN_PKG += amrwb-$(LIBAMR_WB_VERSION).tar.bz2
 
 # ***************************************************************************
-
 # ffmpeg
 # ***************************************************************************
 
-FFMPEGCONF=--disable-doc --disable-decoder=libvpx
+#Common configuration
+FFMPEGCONF = --disable-doc \
+       --disable-decoder=libvpx \
+       --disable-debug \
+       --enable-gpl \
+       --enable-postproc \
+       --disable-ffprobe \
+       --disable-ffserver \
+       --disable-ffmpeg \
+       --disable-ffplay \
+       --disable-devices \
+       --disable-protocols \
+       --disable-avfilter \
+       --disable-network
+
+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
-FFMPEGCONF += --cross-prefix=arm-linux-androideabi- --arch=armv4l
+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
-
-#
-# Special target-dependant options
-#
-
-ifdef HAVE_WINCE
-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
+ifdef CC
+FFMPEGCONF += --cc="$(CC)"
 endif
 
+#
+# Special target-dependant options
+#
 ifndef HAVE_UCLIBC
 ifndef HAVE_WINCE
 ifndef HAVE_IOS
@@ -1007,10 +990,7 @@ endif
 endif
 endif
 
-ifdef CC
-FFMPEGCONF += --cc="$(CC)"
-endif
-
+# MacOS X
 ifdef HAVE_MACOSX_ON_INTEL
 FFMPEGCONF += --enable-memalign-hack
 endif
@@ -1021,11 +1001,12 @@ endif
 
 ifdef HAVE_MACOSX32
 FFMPEGCONF += --enable-libvpx
-FFMPEGCONF += --cc=gcc-4.0
+FFMPEGCONF += --cc=gcc-4.2
 endif
 
 ifdef HAVE_MACOSX64
 FFMPEGCONF += --enable-libvpx
+FFMPEGCONF += --cc=gcc-4.2
 FFMPEGCONF += --cpu=core2
 endif
 
@@ -1036,32 +1017,45 @@ endif
 ifdef HAVE_IOS
 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
 
-ifdef HAVE_AMR
-FFMPEGCONF+= --enable-libamr-nb --enable-libamr-wb --enable-nonfree
-endif
-
+# Linux
 ifdef HAVE_LINUX
-FFMPEGCONF += --target-os=linux
-FFMPEGCONF += --enable-pic
+FFMPEGCONF += --target-os=linux --enable-pic
 endif
 
 ifdef HAVE_MAEMO
 ifneq ($(filter -m%=cortex-a8, $(EXTRA_CFLAGS)),)
-FFMPEGCONF += --disable-runtime-cpudetect --enable-neon --cpu=cortex-a8
+FFMPEGCONF += $(FFMPEGCONFNEON)
 endif
 endif
 
+ifdef HAVE_ANDROID
+ifdef HAVE_NEON
+FFMPEGCONF += $(FFMPEGCONFNEON)
+FFMPEG_CFLAGS +=-mfloat-abi=softfp -mfpu=neon
+endif
+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
+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
+                       --enable-libmp3lame --enable-w32threads --disable-bsfs
 ifdef HAVE_WIN64
 FFMPEGCONF += --disable-dxva2
 FFMPEGCONF+= --cpu=athlon64 --arch=x86_64
@@ -1071,15 +1065,24 @@ 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
 
-PHONY += ffmpeg-svn ffmpeg-tar
+ifdef GIT
 
-ffmpeg/.svn-$(FFMPEG_SVN_REV):
-       $(SVN) co -r $(FFMPEG_SVN_REV) $(FFMPEG_SVN) ffmpeg
+ffmpeg:
+       $(GIT) clone $(FFMPEG_GIT)
 ifdef HAVE_ISA_THUMB
        patch -p0 < Patches/ffmpeg-avcodec-no-thumb.patch
 endif
@@ -1096,27 +1099,13 @@ ifdef HAVE_WIN32
 endif
        touch $@
 
-ffmpeg-$(FFMPEG_VERSION).tar.gz:
-       echo "ffmpeg snapshot is too old, you MUST use subversion !"
-       exit -1
-       $(WGET) $(FFMPEG_URL)
+else
 
-ffmpeg/.untar: ffmpeg-$(FFMPEG_VERSION).tar.gz
-       $(EXTRACT_GZ)
-       touch $@
+ffmpeg:
+       echo "ffmpeg snapshot is too old, you MUST use git !"
+       exit 1
 
-FFMPEGCONF += \
-       --disable-debug \
-       --enable-gpl \
-       --enable-postproc \
-       --disable-ffprobe \
-       --disable-ffserver \
-       --disable-ffmpeg \
-       --disable-ffplay \
-       --disable-devices \
-       --disable-protocols \
-       --disable-avfilter \
-       --disable-network
+endif
 
 ifeq ($(ARCH),armel)
 HAVE_ARMELF=1
@@ -1131,27 +1120,21 @@ 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) =
 
-ifdef SVN
-FFMPEG_MK_TARGET = ffmpeg/.svn-$(FFMPEG_SVN_REV)
-else
-FFMPEG_MK_TARGET = ffmpeg/.untar
-endif
-
-.ffmpeg: $(FFMPEG_MK_TARGET) $(FFMPEG_DEPS-1)
+.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
@@ -1265,10 +1248,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
@@ -1284,6 +1267,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
@@ -1358,6 +1342,8 @@ endif
 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
@@ -1440,7 +1426,7 @@ ifdef HAVE_LINUX
 X264CONF += --enable-pic
 endif
 
-X264CONF += --disable-avs --disable-lavf --disable-ffms
+X264CONF += --disable-avs --disable-lavf --disable-ffms --enable-static --disable-cli
 
 x264-$(X264_VERSION).tar.gz:
        $(WGET) $(X264_URL)
@@ -1448,9 +1434,6 @@ x264-$(X264_VERSION).tar.gz:
 ifdef GIT
 x264:
        $(GIT) clone git://git.videolan.org/x264.git
-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 !"
@@ -1459,12 +1442,8 @@ 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_MACOSX_ON_INTEL
   .x264: x264 .yasm
@@ -1521,6 +1500,9 @@ ifneq ($(HOST),$(BUILD))
 endif
 ifdef HAVE_WIN32
        (cd $@; patch -p0 < ../Patches/libcddb-win32.patch )
+endif
+ifdef HAVE_DARWIN_OS
+       (cd $@; patch -p0 < ../Patches/libcddb-darwin.patch )
 endif
        patch -p0 < Patches/libcddb-getenv-crash.patch
 
@@ -1528,8 +1510,13 @@ 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 $@
 
@@ -1574,7 +1561,11 @@ ifdef HAVE_MACOSX
 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
@@ -1648,10 +1639,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)
@@ -1668,7 +1659,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
@@ -1804,7 +1795,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 $@
 
@@ -1915,9 +1906,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 $@
@@ -2023,7 +2014,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 $@
 
@@ -2065,10 +2056,11 @@ endif
 .mpcdec: mpcdec
        (cd $<; cmake . -DCMAKE_TOOLCHAIN_FILE=../../toolchain.cmake -DCMAKE_INSTALL_PREFIX=$(PREFIX) && make install)
 ifdef HAVE_WIN32
-       (cd $<; cp libmpcdec/libmpcdec_static.a $(PREFIX)/lib/libmpcdec.a)
+       (cd $<; mkdir -p $(PREFIX)/lib && cp libmpcdec/libmpcdec_static.a $(PREFIX)/lib/libmpcdec.a)
 endif
 ifdef HAVE_MACOSX
-       (cd $<; cp libmpcdec/libmpcdec.dylib $(PREFIX)/lib/libmpcdec.dylib)
+       (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 $@
 
@@ -2119,19 +2111,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:
@@ -2142,15 +2134,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
@@ -2218,7 +2210,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 $@
 
@@ -2235,6 +2227,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
@@ -2243,7 +2238,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 $@
 
@@ -2271,7 +2266,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 $@
 
@@ -2342,6 +2337,7 @@ orc-$(ORC_VERSION).tar.gz:
 
 orc: orc-$(ORC_VERSION).tar.gz
        $(EXTRACT_GZ)
+       patch -p0 < Patches/orc-stdint.patch
 
 .orc: orc
 ifdef HAVE_MACOSX
@@ -2380,20 +2376,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
@@ -2413,6 +2409,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
 # ***************************************************************************
@@ -2422,12 +2454,12 @@ 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
+       patch -p0 < Patches/libupnp-win64.patch
 endif
+       cd $@; libtoolize && autoreconf
 
 ifdef HAVE_WIN32
 LIBUPNP_ECFLAGS=-DPTW32_STATIC_LIB
@@ -2461,6 +2493,7 @@ endif
 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)
@@ -2690,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