1e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao#!/bin/bash 2e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao# 3e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao# Creates LLVM SVN snapshots: llvm-$REV.tar.bz2 and llvm-gcc-4.2-$REV.tar.bz2, 4e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao# where $REV is an SVN revision of LLVM. This is used for creating stable 5e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao# tarballs which can be used to build known-to-work crosstools. 6e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao# 7e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao# Syntax: 8e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao# $0 [REV] -- grabs the revision $REV from SVN; if not specified, grabs the 9e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao# latest SVN revision. 10e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao 11e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liaoset -o nounset 12e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liaoset -o errexit 13e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao 14e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liaoreadonly LLVM_PROJECT_SVN="http://llvm.org/svn/llvm-project" 15e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao 16e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei LiaogetLatestRevisionFromSVN() { 17e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao svn info ${LLVM_PROJECT_SVN} | egrep ^Revision | sed 's/^Revision: //' 18e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao} 19e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao 20e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liaoreadonly REV="${1:-$(getLatestRevisionFromSVN)}" 21e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao 22e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei LiaocreateTarballFromSVN() { 23e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao local module=$1 24e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao local log="${module}.log" 25e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao echo "Running: svn export -r ${REV} ${module}; log in ${log}" 26e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao svn -q export -r ${REV} ${LLVM_PROJECT_SVN}/${module}/trunk \ 27e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao ${module} > ${log} 2>&1 28e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao 29e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao # Create "module-revision.tar.bz2" packages from the SVN checkout dirs. 30e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao local tarball="${module}-${REV}.tar.bz2" 31e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao echo "Creating tarball: ${tarball}" 32e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao tar cjf ${tarball} ${module} 33e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao 34e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao echo "Cleaning up '${module}'" 35e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao rm -rf ${module} ${log} 36e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao} 37e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao 38e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liaofor module in "llvm" "llvm-gcc-4.2"; do 39e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao createTarballFromSVN ${module} 40e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liaodone 41e264f62ca09a8f65c87a46d562a4d0f9ec5d457Shih-wei Liao 42