summaryrefslogtreecommitdiff
path: root/release.sh
diff options
context:
space:
mode:
authorJohn Koleszar <jkoleszar@google.com>2010-05-18 11:58:33 -0400
committerJohn Koleszar <jkoleszar@google.com>2010-05-18 11:58:33 -0400
commit0ea50ce9cb4b65eee6afa1d041fe8beb5abda667 (patch)
tree1f3b9019f28bc56fd3156f96e5a9653a983ee61b /release.sh
downloadlibvpx-0ea50ce9cb4b65eee6afa1d041fe8beb5abda667.tar.gz
Initial WebM releasev0.9.0
Diffstat (limited to 'release.sh')
-rwxr-xr-xrelease.sh209
1 files changed, 209 insertions, 0 deletions
diff --git a/release.sh b/release.sh
new file mode 100755
index 000000000..3b77dad72
--- /dev/null
+++ b/release.sh
@@ -0,0 +1,209 @@
+#!/bin/bash
+##
+## Copyright (c) 2010 The VP8 project authors. All Rights Reserved.
+##
+## Use of this source code is governed by a BSD-style license and patent
+## grant that can be found in the LICENSE file in the root of the source
+## tree. All contributing project authors may be found in the AUTHORS
+## file in the root of the source tree.
+##
+
+
+
+self=$0
+
+for opt; do
+ case $opt in
+ --clean) clean=yes;;
+ -j*) jopt=$opt;;
+ *) echo "Unsupported option $opt"; exit 1;;
+ esac
+done
+
+TAB=$'\t'
+cat > release.mk << EOF
+%\$(BUILD_SFX).tar.bz2: %/.done
+${TAB}@echo "\$(subst .tar.bz2,,\$@): tarball"
+${TAB}@cd \$(dir \$<); tar -cf - \$(subst .tar.bz2,,\$@) | bzip2 > ../\$@
+
+%\$(BUILD_SFX).zip: %/.done
+${TAB}@echo "\$(subst .zip,,\$@): zip"
+${TAB}@rm -f \$@; cd \$(dir \$<); zip -rq ../\$@ \$(subst .zip,,\$@)
+
+logs/%\$(BUILD_SFX).log.bz2: %/.done
+${TAB}@echo "\$(subst .log.bz2,,\$(notdir \$@)): tarlog"
+${TAB}@mkdir -p logs
+${TAB}@cat \$< | bzip2 > \$@
+
+%/.done:
+${TAB}@mkdir -p \$(dir \$@)
+${TAB}@echo "\$(dir \$@): configure \$(CONFIG_OPTS) \$(EXTRA_PATH)"
+${TAB}@cd \$(dir \$@); export PATH=\$\$PATH\$(EXTRA_PATH); ../\$(SRC_ROOT)/configure \$(CONFIG_OPTS) >makelog.txt 2>&1
+${TAB}@echo "\$(dir \$@): make"
+${TAB}@cd \$(dir \$@); PATH=\$\$PATH\$(EXTRA_PATH) \$(MAKE) >>makelog.txt 2>&1
+${TAB}@echo "\$(dir \$@): test install"
+${TAB}@cd \$(dir \$@); PATH=\$\$PATH\$(EXTRA_PATH) \$(MAKE) install >>makelog.txt 2>&1
+${TAB}@cd \$(dir \$@)/dist/build; PATH=\$\$PATH\$(EXTRA_PATH) \$(MAKE) >>makelog.txt 2>&1
+${TAB}@echo "\$(dir \$@): install"
+${TAB}@cd \$(dir \$@); PATH=\$\$PATH\$(EXTRA_PATH) \$(MAKE) install DIST_DIR=\$(TGT) >>makelog.txt 2>&1
+${TAB}@touch \$@
+
+#include release-deps.mk
+EOF
+
+#[ -f release-deps.mk ] || \
+# find ${self%/*} -name .git -prune -o -type f -print0 \
+# | xargs -0 -n1 echo \
+# | sed -e 's; ;\\ ;g' | awk '{print "$(TGT)/.done: "$0}' > release-deps.mk
+
+build_config_list() {
+ for codec in $CODEC_LIST; do
+ for arch in $ARCH_LIST; do
+ if [ -n "$OS_LIST" ]; then
+ for os in $OS_LIST; do
+ CONFIGS="$CONFIGS vpx-${codec}-${arch}-${os}"
+ done
+ else
+ CONFIGS="$CONFIGS vpx-${codec}-${arch}"
+ fi
+ done
+ done
+}
+
+CODEC_LIST="vp8 vp8cx vp8dx"
+case `uname` in
+ Linux*)
+ ARCH_LIST="x86 x86_64"
+ OS_LIST="linux"
+ build_config_list
+ ARCH_LIST="armv5te armv6 armv7"
+ OS_LIST="linux-gcc"
+
+ ;;
+ CYGWIN*)
+ TAR_SFX=.zip
+ for vs in vs7 vs8; do
+ for arch in x86-win32 x86_64-win64; do
+ for msvcrt in md mt; do
+ case $vs,$arch in
+ vs7,x86_64-win64) continue ;;
+ esac
+ ARCH_LIST="$ARCH_LIST ${arch}${msvcrt}-${vs}"
+ done
+ done
+ done
+ ;;
+ Darwin*)
+ ARCH_LIST="universal"
+ OS_LIST="darwin8 darwin9"
+ ;;
+ sun_os*)
+ ARCH_LIST="x86 x86_64"
+ OS_LIST="solaris"
+ ;;
+esac
+build_config_list
+
+TAR_SFX=${TAR_SFX:-.tar.bz2}
+ARM_TOOLCHAIN=/usr/local/google/csl-2009q3-67
+for cfg in $CONFIGS; do
+ full_cfg=$cfg
+ cfg=${cfg#vpx-}
+ opts=
+ rm -f makelog.txt
+
+ case $cfg in
+ src-*) opts="$opts --enable-codec-srcs"
+ cfg=${cfg#src-}
+ ;;
+ eval-*) opts="$opts --enable-eval-limit"
+ cfg=${cfg#src-}
+ ;;
+ esac
+
+ case $cfg in
+ #
+ # Linux
+ #
+ *x86-linux)
+ opts="$opts --target=x86-linux-gcc" ;;
+ *x86_64-linux)
+ opts="$opts --target=x86_64-linux-gcc" ;;
+ *arm*-linux-gcc)
+ armv=${cfg##*armv}
+ armv=${armv%%-*}
+ opts="$opts --target=armv${armv}-linux-gcc" ;;
+ *arm*-linux-rvct)
+ armv=${cfg##*armv}
+ armv=${armv%%-*}
+ opts="$opts --target=armv${armv}-linux-rvct"
+ opts="$opts --libc=${ARM_TOOLCHAIN}/arm-none-linux-gnueabi/libc" ;;
+
+
+ #
+ # Windows
+ #
+ # need --enable-debug-libs for now until we're smarter about
+ # building the debug/release from the customer installed
+ # environment
+ *-x86-win32*-vs*)
+ opts="$opts --target=x86-win32-vs${cfg##*-vs} --enable-debug-libs";;
+ *-x86_64-win64*-vs8)
+ opts="$opts --target=x86_64-win64-vs8 --enable-debug-libs" ;;
+
+ #
+ # Darwin
+ #
+ *-universal-darwin*)
+ opts="$opts --target=universal-darwin${cfg##*-darwin}-gcc" ;;
+
+ #
+ # Solaris
+ #
+ *x86-solaris)
+ opts="$opts --target=x86-solaris-gcc" ;;
+ *x86_64-solaris)
+ opts="$opts --target=x86_64-solaris-gcc" ;;
+ esac
+
+ case $cfg in
+ *x86-linux | *x86-solaris) opts="$opts --enable-pic" ;;
+ esac
+
+ case $cfg in
+ *-win[36][24]mt*) opts="$opts --enable-static-msvcrt" ;;
+ *-win[36][24]md*) opts="$opts --disable-static-msvcrt" ;;
+ esac
+
+ opts="$opts --disable-codecs"
+ case $cfg in
+ vp8*) opts="$opts --enable-vp8" ;;
+ esac
+ case $cfg in
+ *cx-*) opts="${opts}-encoder" ;;
+ *dx-*) opts="${opts}-decoder" ;;
+ esac
+ opts="$opts --enable-postproc"
+
+ [ "x${clean}" == "xyes" ] \
+ && rm -rf ${full_cfg}${BUILD_SFX}${TAR_SFX} \
+ && rm -rf logs/${full_cfg}${BUILD_SFX}.log.bz2
+
+ TGT=${full_cfg}${BUILD_SFX}
+ BUILD_TARGETS="logs/${TGT}.log.bz2 ${TGT}${TAR_SFX}"
+ echo "${BUILD_TARGETS}: CONFIG_OPTS=$opts" >>release.mk
+ echo "${BUILD_TARGETS}: TGT=${TGT}" >>release.mk
+ case $cfg in
+ *-arm*-linux-*)
+ echo "${BUILD_TARGETS}: EXTRA_PATH=:${ARM_TOOLCHAIN}/bin/" >>release.mk ;;
+ *-vs7)
+ echo "${BUILD_TARGETS}: EXTRA_PATH=:/cygdrive/c/Program\ Files/Microsoft\ Visual\ Studio\ .NET\ 2003/Common7/IDE" >>release.mk ;;
+ *-vs8)
+ echo "${BUILD_TARGETS}: EXTRA_PATH=:/cygdrive/c/Program\ Files/Microsoft\ Visual\ Studio\ 8/Common7/IDE" >>release.mk ;;
+ esac
+ MAKE_TGTS="$MAKE_TGTS ${TGT}${TAR_SFX} logs/${TGT}.log.bz2"
+done
+
+
+${MAKE:-make} ${jopt:--j3} -f release.mk \
+ SRC_ROOT=${self%/*} BUILD_SFX=${BUILD_SFX} ${MAKE_TGTS}