summaryrefslogtreecommitdiff
path: root/contrib/ffmpeg-universal.sh
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ffmpeg-universal.sh')
-rwxr-xr-xcontrib/ffmpeg-universal.sh177
1 files changed, 0 insertions, 177 deletions
diff --git a/contrib/ffmpeg-universal.sh b/contrib/ffmpeg-universal.sh
deleted file mode 100755
index 6e27c56b8..000000000
--- a/contrib/ffmpeg-universal.sh
+++ /dev/null
@@ -1,177 +0,0 @@
-#!/bin/sh
-
-function usage {
- echo "usage: $0 <action> <source path> <arch list>"
- echo "where: <action> is one of:"
- echo " -configure do initial configuration for each architecture"
- echo " -avcodec build libavcodec.a for each architecture"
- echo " -avutil build libavutil.a for each architecture"
- echo " -postproc build libpostproc.a for each architecture"
- echo " -clean clean for each architecture"
- echo " -distclean distclean for each architecture"
- echo ""
- echo "Configuration must be done before any library builds. Options to be passed"
- echo "to ffmpeg's configure command-line should be passed in the environment"
- echo "using the FFMPEG_CONFIGURE_OPTIONS environment variable."
- exit 1
-}
-
-function run_configure {
- local arch=$1
- local ffmpeg_topbuilddir="$2"
-
- # start over from scratch
- rm -rf "$ffmpeg_topbuilddir"
- mkdir -p "$ffmpeg_topbuilddir"
- pushd "$ffmpeg_topbuilddir" > /dev/null 2>&1
-
- # The Makefile should be passing FFMPEG_CONFIGURE_OPTIONS without passing
- # any --extra-cflags or --extra-ldflags options. Both CFLAGS and LDFLAGS
- # should be in the environment in addition to FFMPEG_CONFIGURE_OPTIONS.
-
- local CROSS_OPTIONS=
- local EXTRA_CFLAGS=
- local EXTRA_LDFLAGS=
-
- if test $HOST_ARCH != $arch; then
- EXTRA_CFLAGS="$CFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch $arch"
- EXTRA_LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch $arch"
- if test $arch = i386; then
- FFMPEG_ARCH=x86_32
- else
- FFMPEG_ARCH=$arch
- fi
- CROSS_OPTIONS="--cross-compile --arch=$FFMPEG_ARCH"
- fi
-
- echo "$SOURCE_PATH/configure" $CROSS_OPTIONS $FFMPEG_CONFIGURE_OPTIONS \
- --extra-cflags="$EXTRA_CFLAGS" \
- --extra-ldflags="$EXTRA_LDFLAGS"
- "$SOURCE_PATH/configure" $CROSS_OPTIONS $FFMPEG_CONFIGURE_OPTIONS \
- --extra-cflags="$EXTRA_CFLAGS" \
- --extra-ldflags="$EXTRA_LDFLAGS"
- local retval=$?
-
- # We're building ffmpeg to put it into a shared library, but ffmpeg thinks
- # it's building to put it into a static library or program image, so it
- # adds -mdynamic-no-pic to its list of options as an optimization. This is
- # fine in Tiger if later linked with -Wl,-read_only_relocs,warning, but it
- # isn't fine on other versions of Mac OS X.
- if test -f config.mak; then
- cat config.mak | sed -e '/OPTFLAGS=/s/-mdynamic-no-pic//g' > config.tmp
- mv -f config.tmp config.mak
- fi
-
- popd > /dev/null 2>&1
- `exit $retval` || exit $retval
-}
-
-if test x"$*" = x""; then
- usage
-fi
-case "$1" in
- -configure)
- MODE=configure
- ;;
- -avcodec)
- MODE=avcodec
- ;;
- -avutil)
- MODE=avutil
- ;;
- -postproc)
- MODE=postproc
- ;;
- -clean)
- MODE=clean
- ;;
- -distclean)
- MODE=distclean
- ;;
- *)
- echo "Unrecognized mode: $1"
- usage
- ;;
-esac
-shift
-
-if test x"$1" = x""; then
- echo "No source path specified!"
- usage
-fi
-if test ! -d "$1"; then
- echo "Source path $1 does not exist!"
- exit 1
-fi
-SOURCE_PATH="$1"
-shift
-
-TOP_BUILD_PATH="`pwd`/ffmpeg"
-if test -f "$TOP_BUILD_PATH/configure"; then
- # Building in place. Create a temporary build directory and use that
- # instead, but place the final output from lipo into the original
- # build directory.
- BUILD_PATH="$TOP_BUILD_PATH/build"
-else
- BUILD_PATH="$TOP_BUILD_PATH"
-fi
-# This doesn't make sense for -configure, but it does for everything else.
-# The -configure mode won't ever use it anyway.
-OUTPUT_FILENAME="$BUILD_PATH/lib$MODE/lib$MODE.a"
-
-HOST_ARCH=`arch`
-UNIVERSAL_ARCHES=$*
-if test x"$UNIVERSAL_ARCHES" = x""; then
- echo "No architecture(s) specified; using $HOST_ARCH only."
- UNIVERSAL_ARCHES=$HOST_ARCH
-fi
-CONFIG_FILES=
-LIPO_CMDLINE="-create -output $OUTPUT_FILENAME"
-for arch in $UNIVERSAL_ARCHES; do
- ffmpeg_topbuilddir="$BUILD_PATH/$arch"
- LIPO_CMDLINE="$LIPO_CMDLINE -arch $arch $ffmpeg_topbuilddir/lib$MODE/lib$MODE.a"
- case $MODE in
- configure)
- run_configure $arch "$ffmpeg_topbuilddir"
- CONFIG_FILES="$CONFIG_FILES $ffmpeg_topbuilddir/config.h"
- ;;
- avcodec)
- "$MAKE" -C "$ffmpeg_topbuilddir/libavcodec" libavcodec.a || exit $?
- ;;
- avutil)
- "$MAKE" -C "$ffmpeg_topbuilddir/libavutil" libavutil.a || exit $?
- ;;
- postproc)
- "$MAKE" -C "$ffmpeg_topbuilddir/libpostproc" libpostproc.a || exit $?
- ;;
- clean)
- "$MAKE" -C "$ffmpeg_topbuilddir" clean || exit $?
- ;;
- distclean)
- "$MAKE" -C "$ffmpeg_topbuilddir" distclean || exit $?
- ;;
- esac
-done
-
-case $MODE in
- configure)
- # Now that configuration is done, create config.h in the top-level
- # ffmpeg directory. Pull out only what's needed by xine-lib, removing
- # any possible platform conflicts
- grep -h "define CONFIG_.*_DECODER" $CONFIG_FILES | uniq > "$BUILD_PATH/config.h"
- touch "$BUILD_PATH/config.mak"
- ;;
- clean)
- rm -f "$BUILD_PATH/libavcodec/libavcodec.a" "$BUILD_PATH/libavutil/libavutil.a" \
- "$BUILD_PATH/libpostproc/libpostproc.a"
- ;;
- distclean)
- rm -f "$BUILD_PATH/config.mak" "$BUILD_PATH/config.h"
- rm -f "$BUILD_PATH/libavcodec/libavcodec.a" "$BUILD_PATH/libavutil/libavutil.a" \
- "$BUILD_PATH/libpostproc/libpostproc.a"
- ;;
- *)
- mkdir -p "`dirname "$OUTPUT_FILENAME"`"
- lipo $LIPO_CMDLINE
- ;;
-esac