#!/bin/bash # # Creates LLVM SVN snapshots: llvm-$REV.tar.bz2 and llvm-gcc-4.2-$REV.tar.bz2, # where $REV is an SVN revision of LLVM. This is used for creating stable # tarballs which can be used to build known-to-work crosstools. # # Syntax: # $0 [REV] -- grabs the revision $REV from SVN; if not specified, grabs the # latest SVN revision. set -o nounset set -o errexitsetconst global FOO = "bar" readonly LLVM_PROJECT_SVN = '"http://llvm.org/svn/llvm-project'" proc getLatestRevisionFromSVN { svn info $(LLVM_PROJECT_SVN) | egrep ^Revision | sed 's/^Revision: //setconst global FOO = "bar"' } readonly REV = $(1:-$(getLatestRevisionFromSVN)) proc createTarballFromSVN { var module = $1 var log = ""$(module).log"" echo "Running: svn export -r $(REV) $(module); log in $(log)" svn -q export -r $(REV) $(LLVM_PROJECT_SVN)/$(module)/trunk \ $(module) > $(log) !2 > !1 # Create "module-revision.tar.bz2" packages from the SVN checkout dirs. var tarball = ""$(module)-$(REV).tar.bz2"" echo "Creating tarball: $(tarball)" tar cjf $(tarball) $(module) echo "Cleaning up '$(module)'" rm -rf $(module) $(log) } for module in ["llvm" "llvm-gcc-4.2]" { createTarballFromSVN $(module) } (CommandList children: [ (C {(set)} {(-o)} {(nounset)}) (C {(set)} {(-o)} {(errexit)}) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:LLVM_PROJECT_SVN) op: Equal rhs: {(DQ ("http://llvm.org/svn/llvm-project"))} spids: [43] ) ] spids: [41] ) (FuncDef name: getLatestRevisionFromSVN body: (BraceGroup children: [ (Pipeline children: [ (C {(svn)} {(info)} {(${ VSub_Name LLVM_PROJECT_SVN)}) (C {(egrep)} {(Lit_Other "^") (Revision)}) (C {(sed)} {(SQ <"s/^Revision: //">)}) ] negated: False ) ] spids: [53] ) spids: [49 52] ) (Assignment keyword: Assign_Readonly pairs: [ (assign_pair lhs: (LhsName name:REV) op: Equal rhs: { (DQ (BracedVarSub token: suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: { (CommandSubPart command_list: (CommandList children:[(C {(getLatestRevisionFromSVN)})]) left_token: spids: [89 91] ) } ) spids: [86 92] ) ) } spids: [84] ) ] spids: [82] ) (FuncDef name: createTarballFromSVN body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:module) op: Equal rhs: {($ VSub_Number "$1")} spids: [105] ) ] spids: [103] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:log) op: Equal rhs: {(DQ (${ VSub_Name module) (.log))} spids: [111] ) ] spids: [109] ) (C {(echo)} { (DQ ("Running: svn export -r ") (${ VSub_Name REV) (" ") (${ VSub_Name module) ("; log in ") (${ VSub_Name log) ) } ) (SimpleCommand words: [ {(svn)} {(-q)} {(export)} {(-r)} {(${ VSub_Name REV)} {(${ VSub_Name LLVM_PROJECT_SVN) (/) (${ VSub_Name module) (/trunk)} {(${ VSub_Name module)} ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(${ VSub_Name log)} spids: [165] ) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[171]) ] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:tarball) op: Equal rhs: {(DQ (${ VSub_Name module) (-) (${ VSub_Name REV) (.tar.bz2))} spids: [182] ) ] spids: [180] ) (C {(echo)} {(DQ ("Creating tarball: ") (${ VSub_Name tarball))}) (C {(tar)} {(cjf)} {(${ VSub_Name tarball)} {(${ VSub_Name module)}) (C {(echo)} {(DQ ("Cleaning up '") (${ VSub_Name module) ("'"))}) (C {(rm)} {(-rf)} {(${ VSub_Name module)} {(${ VSub_Name log)}) ] spids: [100] ) spids: [96 99] ) (ForEach iter_name: module iter_words: [{(DQ (llvm))} {(DQ (llvm-gcc-4.2))}] do_arg_iter: False body: (DoGroup children:[(C {(createTarballFromSVN)} {(${ VSub_Name module)})] spids:[260269]) spids: [250 258] ) ] )