X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=extras%2Fcontrib%2Fsrc%2Fcontrib-src.mak;h=8bc056d8b2d2aa6c657fc7cd841a5a77eaeaeefd;hb=fd795f7da62400a8c078823d9a7eb3970072e6f1;hp=2b6895ccc0214f1c633320cbc02af08573c1cef8;hpb=4b6e13d37fbac845c07c61236f3c765fae665d90;p=vlc diff --git a/extras/contrib/src/contrib-src.mak b/extras/contrib/src/contrib-src.mak index 2b6895ccc0..8bc056d8b2 100644 --- a/extras/contrib/src/contrib-src.mak +++ b/extras/contrib/src/contrib-src.mak @@ -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 @@ -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 $> libFLAC/flac.pc && \ - make -C libFLAC install + cd $< && $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(FLAC_DISABLE_FLAGS) + cd $ 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 $ {}; 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