#***************************************************************************
# src/Makefile : Dearchive and compile all files necessary
# ***************************************************************************
-# Copyright (C) 2003 - 2008 the VideoLAN team
+# Copyright (C) 2003 - 2009 the VideoLAN team
# $Id$
#
# Authors: Christophe Massiot <massiot@via.ecp.fr>
# Derk-Jan Hartman <hartman at videolan dot org>
# Eric Petit <titer@m0k.org>
-# Felix Paul Kühne <fkuehne@videolan.org>
+# Felix Paul Kühne <fkuehne at videolan dot org>
# Christophe Mutricy <xtophe AT xtelevision.com>
# Gildas Bazin <gbazin at videolan dot org>
# Damien Fouilleul <damienf at videolan dot org>
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)
+ifdef HAVE_DARWIN_OS
+export CC
+export CXX
+export LD
+endif
# ***************************************************************************
# Cross compilation variables
ifneq ($(CC),)
HOSTCC+= CC="$(CC)"
+FFMPEGCONF += --cc=$(CC)
endif
ifneq ($(CXX),)
HOSTCC+= CXX="$(CXX)"
FFMPEGCONF+= --enable-small --disable-debug --disable-mpegaudio-hp
FFMPEG_CFLAGS += -DHAVE_LRINTF --std=c99
else
-FFMPEGCONF+= --enable-libmp3lame --enable-libfaac --enable-swscale
+FFMPEGCONF+= --enable-libmp3lame --enable-libfaac
endif
ifdef HAVE_BEOS
endif
ifdef HAVE_DARWIN_OS_ON_INTEL
-FFMPEGCONF += --enable-memalign-hack --cpu=pentium-m
+FFMPEGCONF += --enable-memalign-hack
endif
ifdef HAVE_DARWIN_OS
X264CONF += --enable-pic
+FFMPEGCONF += --cc=$(CC)
+FFMPEGCONF += --arch=$(ARCH)
ifdef HAVE_DARWIN_OS_ON_INTEL
FFMPEG_CFLAGS += -DHAVE_LRINTF
endif
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 --enable-libxml2 --disable-docs && make && make install-exec && (cd fontconfig ; make install-data) && cp fontconfig.pc $(PKG_CONFIG_LIBDIR))
+ (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
patch -d libvorbis -p0 < Patches/libvorbis-r14598-CVE-2008-1420.patch
patch -d libvorbis -p0 < Patches/libvorbis-r14602-CVE-2008-1419.patch
patch -d libvorbis -p0 < Patches/libvorbis-r14602-CVE-2008-1423.patch
- (cd $@; autoconf)
+ (cd $@; sh autogen.sh)
.vorbis: libvorbis .ogg
(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
THEORACONF += --disable-docs
endif
+ifdef HAVE_DARWIN_10
+THEORACONF += --disable-asm
+endif
+
.theora: libtheora .ogg
ifdef HAVE_BEOS
(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) $(THEORACONF) --disable-asm && make && make install)
faad2: faad2-$(FAAD2_VERSION).tar.gz
$(EXTRACT_GZ)
- (cd $@; ./bootstrap)
+ (cd $@; sh ./bootstrap)
.faad: faad2
(cd $< && $(HOSTCC) ./configure $(HOSTCONF) --disable-shared --prefix=$(PREFIX) CFLAGS="-O3" && sed -i.orig "s/shrext_cmds/shrext/g" libtool && make -C libfaad && make -C libfaad install)
lame: lame-$(LAME_VERSION).tar.gz
$(EXTRACT_GZ)
- patch -p0 < Patches/libmp3lame-mingw32.patch
.lame: lame
(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-analyser-hooks --disable-decoder --disable-shared --disable-gtktest --disable-frontend && make && make install)
$(EXTRACT_GZ)
endif
-FFMPEGCONF += --enable-gpl --enable-postproc --disable-vhook --disable-ffserver --disable-ffmpeg --disable-ffplay --disable-devices --disable-protocols --disable-network --enable-swscale
+FFMPEGCONF += --enable-gpl --enable-postproc --disable-ffserver --disable-ffmpeg --disable-ffplay --disable-devices --disable-protocols --disable-network
ifdef HAVE_WIN32
-FFMPEGCONF += --disable-bzlib
+FFMPEGCONF += --disable-bzlib --disable-decoder=dca
endif
ifdef HAVE_WINCE
(cd $<;./genMakefiles mingw && make $(HOSTCC))
else
ifdef HAVE_DARWIN_OS
- (cd $<; sed -e 's%EXTRA_CFLAGS%$(EXTRA_CFLAGS)%' -e 's%EXTRA_LDFLAGS%$(EXTRA_LDFLAGS)%' -i.orig config.macosx)
+ (cd $<; sed -e 's%-DBSD=1%-DBSD=1\ $(EXTRA_CFLAGS)\ $(EXTRA_LDFLAGS)%' -e 's%cc%$(CC)%' -e 's%c++%$(CXX)%' -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)
(cd $@; dos2unix configure.in)
patch -p0 < Patches/goom2k4-0-win32.patch
else
+ifneq ($(DARWIN_COMPILER),LLVMGCC)
patch -p0 < Patches/goom2k4-0-mmx.patch
endif
+endif
+patch -p0 < Patches/goom2k4-0-memleaks.patch
.goom2k4: goom
ifdef HAVE_DARWIN_OS
ifndef HAVE_DARWIN_OS_ON_INTEL
patch -p0 < Patches/caca-osx-ppc.patch
endif
+ patch -p0 < Patches/libcaca-osx-sdkofourchoice.patch
+ (cd $@; sed -e 's%/Developer/SDKs/MacOSX10.4u.sdk%$(MACOSX_SDK)%' -i.orig configure)
endif
.caca: libcaca
libdca: libdca-$(LIBDCA_VERSION).tar.bz2
$(EXTRACT_BZ2)
+ifdef HAVE_DARWIN_9
+ ( cd $@; patch -p0 < ../Patches/libdca-llvm-gcc.patch )
+endif
.dca: libdca
(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
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)
+ (cd $<; $(HOSTCC) ./configure $(X264CONF) --prefix="$(PREFIX)" --enable-pthread && make && make install)
endif
else
ifdef HAVE_DARWIN_OS_ON_INTEL
libmodplug: libmodplug-$(MODPLUG_VERSION).tar.gz
$(EXTRACT_GZ)
+ patch -p0 < Patches/libmodplug-gccllvm42.patch
ifdef HAVE_WIN32
patch -p0 < Patches/libmodplug-win32.patch
(cd $@; autoreconf)
libcdio: libcdio-$(CDIO_VERSION).tar.gz
$(EXTRACT_GZ)
patch -p0 < Patches/libcdio-install-cdparanoia-pc.patch
+ifdef HAVE_DARWIN_OS
+ patch -p0 < Patches/libcdio-modernOSX.patch
+endif
.cdio: libcdio
(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)
xml: libxml2-$(XML_VERSION).tar.gz
$(EXTRACT_GZ)
-ifdef HAVE_WIN32
- patch -p0 < Patches/xml2-win32.patch
- rm -f xml/aclocal.m4
- (cd $@; aclocal && automake && autoreconf)
-endif
ifdef HAVE_UCLIBC
patch -p0 < Patches/xml2-uclibc.patch
endif
-XMLCONF = --with-minimal --with-catalog --with-reader --with-tree --with-push --with-xptr --with-valid --with-xpath --with-xinclude --with-sax1 --without-zlib --without-iconv --without-http --without-ftp --without-debug --without-docbook --without-regexps
+XMLCONF = --with-minimal --with-catalog --with-reader --with-tree --with-push --with-xptr --with-valid --with-xpath --with-xinclude --with-sax1 --without-zlib --without-iconv --without-http --without-ftp --without-debug --without-docbook --without-regexps --without-python
.xml: xml
ifdef HAVE_CYGWIN
.gcrypt: libgcrypt .gpg-error
ifdef HAVE_WIN32
- (cd $<; ./autogen.sh && $(HOSTCC) ./configure $(HOSTCONF) --target=i586-mingw32msvc --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(CIPHDIG) --disable-shared --enable-static --disable-nls && sed -i 46s@sys/times.h@sys/time.h@ cipher/random.c && make && make install)
+ (cd $<; ./autogen.sh && $(HOSTCC) ./configure $(HOSTCONF) --target=i586-mingw32msvc --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(CIPHDIG) --disable-shared --enable-static --disable-nls && make && make install)
else
(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(CIPHDIG) && make && make install)
endif
DISTCLEAN_PKG += tiff-$(TIFF_VERSION).tar.gz
# ***************************************************************************
-# SDL
+# LibSDL
# ***************************************************************************
+ifndef HAVE_DARWIN_OS
SDL-$(SDL_VERSION).tar.gz:
$(WGET) $(SDL_URL)
SDL: SDL-$(SDL_VERSION).tar.gz
$(EXTRACT_GZ)
+else
+SDL:
+ $(SVN) co http://svn.libsdl.org/trunk/SDL -r 4444 SDL
+ (cd $@; sh autogen.sh)
+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)
$(EXTRACT_GZ)
.yasm: yasm
- (cd $< && $(HOSTCC) ./configure --prefix=$(PREFIX) && make && make install)
+ (cd $< && $(HOSTCC) ./configure --prefix=$(PREFIX) --host=$(HOST) && make && make install)
touch $@
CLEAN_FILE += .yasm
libkate: libkate-$(KATE_VERSION).tar.gz
$(EXTRACT_GZ)
- (cd $@; autoconf)
.kate: libkate .ogg
- (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-valgrind && make && make install)
+ (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-valgrind --disable-doc && make && make install)
$(INSTALL_NAME)
touch $@
CLEAN_PKG += libkate
DISTCLEAN_PKG += libkate-$(KATE_VERSION).tar.gz
+# ***************************************************************************
+# tiger
+# ***************************************************************************
+
+libtiger-$(TIGER_VERSION).tar.gz:
+ $(WGET) $(TIGER_URL)
+
+libtiger: libtiger-$(TIGER_VERSION).tar.gz
+ $(EXTRACT_GZ)
+
+.tiger: libtiger .kate
+ (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
+ $(INSTALL_NAME)
+ touch $@
+
+CLEAN_FILE += .tiger
+CLEAN_PKG += libtiger
+DISTCLEAN_PKG += libtiger-$(TIGER_VERSION).tar.gz
+
# ***************************************************************************
# Copy aclocal files
# This is necessary for --missing aclocal to succeed after a
pthreads: pthreads-w32-$(PTHREADS_VERSION)-release.tar.gz
$(EXTRACT_GZ)
+ (cd $@; patch -p0 < ../Patches/pthreads-detach.patch)
.pthreads: pthreads
(cd $<; $(HOSTCC) make $(PTHREADSCONF) 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/)
CLEAN_PKG += libass
DISTCLEAN_PKG += libass-$(ASS_VERSION).tar.bz2
+# ***************************************************************************
+# UPNP library
+# ***************************************************************************
+
+libupnp-$(UPNP_VERSION).tar.bz2:
+ $(WGET) $(UPNP_URL)
+
+libupnp: libupnp-$(UPNP_VERSION).tar.bz2
+ $(EXTRACT_BZ2)
+
+.libupnp: libupnp
+ (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-samples --without-documentation --disable-webserver CFLAGS="$(CFLAGS) -O3" && make && make install)
+ touch $@
+
+CLEAN_FILE += .libupnp
+CLEAN_PKG += libupnp
+DISTCLEAN_PKG += libupnp-$(UPNP_VERSION).tar.bz2
+
+
# ***************************************************************************
# Some cleaning
# ***************************************************************************