# Set a clean environment
# ***************************************************************************
-#ifdef HAVE_DARWIN_OS
+ifdef HAVE_DARWIN_OS
export PATH := $(PREFIX)/bin:$(EXTRA_PATH):/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:
-#else
+else
export PATH := $(PREFIX)/bin:$(EXTRA_PATH):$(PATH)
-#endif
+endif
export PKG_CONFIG_PATH
export PKG_CONFIG_LIBDIR = $(PREFIX)/lib/pkgconfig
export MACOSX_DEPLOYMENT_TARGET = $(SDK_TARGET)
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
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 $@
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 $@
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-avconv \
+ --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-none-symbianelf- --arch=armv6 --disable-asm
+FFMPEGCONF += --cross-prefix=arm-none-symbianelf- --arch=armv6 --disable-asm --target-os=none
+FFMPEGCONF += $(FFMPEGCONFSMALL)
endif
else
-FFMPEGCONF += --cross-prefix=arm-linux-androideabi- --arch=armv4l
+FFMPEGCONF += --cross-prefix=arm-linux-androideabi- --arch=armv6
+FFMPEGCONF += $(FFMPEGCONFSMALL)
endif
endif
+ifdef CC
+FFMPEGCONF += --cc="$(CC)"
+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
-endif
-
ifndef HAVE_UCLIBC
ifndef HAVE_WINCE
ifndef HAVE_IOS
endif
endif
-ifdef CC
-FFMPEGCONF += --cc="$(CC)"
-endif
-
+# MacOS X
ifdef HAVE_MACOSX_ON_INTEL
FFMPEGCONF += --enable-memalign-hack
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
+# Linux
+ifdef HAVE_LINUX
+FFMPEGCONF += --target-os=linux --enable-pic
endif
-ifdef HAVE_LINUX
-FFMPEGCONF += --target-os=linux
-FFMPEGCONF += --enable-pic
+ifdef HAVE_MAEMO
+ifneq ($(filter -m%=cortex-a8, $(EXTRA_CFLAGS)),)
+FFMPEGCONF += $(FFMPEGCONFNEON)
+endif
endif
-ifdef HAVE_SYMBIAN
-FFMPEGCONF += --target-os=none
+ifdef HAVE_ANDROID
+ifdef HAVE_NEON
+FFMPEGCONF += $(FFMPEGCONFNEON)
+FFMPEG_CFLAGS +=-mfloat-abi=softfp -mfpu=neon
+endif
endif
-ifdef HAVE_MAEMO
-ifneq ($(filter -m%=cortex-a8, $(EXTRA_CFLAGS)),)
-FFMPEGCONF += --disable-runtime-cpudetect --enable-neon --cpu=cortex-a8
+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
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:
- $(SVN) co $(FFMPEG_SVN) ffmpeg
+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
ifdef HAVE_WIN32
sed -i "s/std=c99/std=gnu99/" ffmpeg/configure
endif
- (cd ffmpeg; patch -p1 < ../Patches/libavformat-ape.c.patch )
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
FFMPEG_DEPS-$(HAVE_ANDROID) =
FFMPEG_DEPS-$(HAVE_SYMBIAN) =
-ifdef SVN
-FFMPEG_MK_TARGET = ffmpeg/.svn
-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
# ***************************************************************************
# libdvdread: We use dvdnav's dvdread
# ***************************************************************************
-libdvdread:
- $(SVN) co -r $(LIBDVDREAD_SVN_REV) $(LIBDVDREAD_SVN) libdvdread
+libdvdread-$(LIBDVDREAD_VERSION).tar.bz2:
+ $(WGET) $(LIBDVDREAD_URL)
+
+libdvdread: libdvdread-$(LIBDVDREAD_VERSION).tar.bz2
+ $(EXTRACT_BZ2)
(cd $@; patch -p 0 < ../Patches/libdvdread-dvdcss-static.patch)
ifdef HAVE_WIN32
(cd $@; patch -p 0 < ../Patches/libdvdread-win32.patch)
CLEAN_FILE += .libdvdread
CLEAN_PKG += libdvdread
-#DISTCLEAN_PKG += libdvdread-$(LIBDVDREAD_VERSION).tar.gz
+DISTCLEAN_PKG += libdvdread-$(LIBDVDREAD_VERSION).tar.bz2
# ***************************************************************************
# libdvdnav
# ***************************************************************************
-ifdef SVN
-libdvdnav:
- $(SVN) co -r $(LIBDVDNAV_SVN_REV) $(LIBDVDNAV_SVN) libdvdnav
- patch -d libdvdnav -p0 < Patches/libdvdnav.patch
- (cd $@; ./autogen.sh noconfig)
-else
-libdvdnav-$(LIBDVDNAV_VERSION).tar.gz:
+libdvdnav-$(LIBDVDNAV_VERSION).tar.bz2:
$(WGET) $(LIBDVDNAV_URL)
-libdvdnav: libdvdnav-$(LIBDVDNAV_VERSION).tar.gz
- $(EXTRACT_GZ)
+libdvdnav: libdvdnav-$(LIBDVDNAV_VERSION).tar.bz2
+ $(EXTRACT_BZ2)
patch -p0 < Patches/libdvdnav.patch
-ifdef HAVE_WIN32
- patch -p0 < Patches/libdvdnav-win32.patch
-endif
(cd $@; ./autogen.sh noconfig)
-endif
.dvdnav: libdvdnav .libdvdread
ifdef HAVE_WIN32
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
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)
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 !"
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
ifneq ($(HOST),$(BUILD))
(patch -p0 < Patches/portaudio-cross.patch;cd $@; autoconf)
endif
-ifdef HAVE_WIN64
- patch -p0 < Patches/portaudio-static.patch
- (cd $@ ; autoreconf -if)
-endif
.portaudio: portaudio
(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make && make install)
libgpg-error: libgpg-error-$(GPGERROR_VERSION).tar.bz2
$(EXTRACT_BZ2)
ifdef HAVE_WIN32
-# patch -p 0 < Patches/libgpg-error-win32.patch
-# (cd $@; ./autogen.sh)
+ patch -p 0 < Patches/libgpg-error-win32.patch
+ (cd $@; autoreconf -ivf)
endif
.gpg-error: libgpg-error
CIPHDIG= --enable-ciphers=aes,des,rfc2268,arcfour --enable-digests=sha1,md5,rmd160 --enable-publickey-digests=dsa
+ifdef HAVE_WIN64
+ac_cv_sys_symbol_underscore=no
+endif
.gcrypt: libgcrypt .gpg-error
ifdef HAVE_WIN32
- (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --target=i586-mingw32msvc --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(CIPHDIG) --disable-shared --enable-static --disable-nls && make && make install)
+ (cd $<; $(HOSTCC) ./configure $(HOSTCONF) --target=i586-mingw32msvc --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" $(CIPHDIG) --disable-shared --enable-static --disable-nls ac_cv_sys_symbol_underscore=$(ac_cv_sys_symbol_underscore) && make && make install)
else
(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS) -lgpg-error" $(CIPHDIG) && make && make install)
endif
$(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 $@
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
patch -p0 < Patches/taglib-cygwin.patch
endif
+ifdef HAVE_WIN64
+TAGLIB_CMAKE_OPTS=-DCMAKE_SYSTEM_NAME=Generic
+else
+TAGLIB_CMAKE_OPTS=
+endif
.tag: taglib
- (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)
+ (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 $(TAGLIB_CMAKE_OPTS) && make && make install)
$(INSTALL_NAME)
touch $@
# 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
- (cd $<; $(HOSTCC) ./configure --disable-png --disable-shared $(HOSTCONF) --prefix=$(PREFIX) CFLAGS="$(CFLAGS) -O3" && make && make install)
+.libass: libass .freetype .fontconfig .fribidi
+ (cd $<; $(HOSTCC) ./configure --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
ifdef HAVE_WIN32
patch -p0 < Patches/libupnp-configure.patch
patch -p0 < Patches/libupnp-win32.patch
+ patch -p0 < Patches/libupnp-win64.patch
endif
cd $@; libtoolize && autoreconf