1*1b3f573fSAndroid Build Coastguard Worker#! /bin/sh 2*1b3f573fSAndroid Build Coastguard Worker 3*1b3f573fSAndroid Build Coastguard Worker# This script takes the result of "make dist" and: 4*1b3f573fSAndroid Build Coastguard Worker# 1) Unpacks it. 5*1b3f573fSAndroid Build Coastguard Worker# 2) Ensures all contents are user-writable. Some version control systems 6*1b3f573fSAndroid Build Coastguard Worker# keep code read-only until you explicitly ask to edit it, and the normal 7*1b3f573fSAndroid Build Coastguard Worker# "make dist" process does not correct for this, so the result is that 8*1b3f573fSAndroid Build Coastguard Worker# the entire dist is still marked read-only when unpacked, which is 9*1b3f573fSAndroid Build Coastguard Worker# annoying. So, we fix it. 10*1b3f573fSAndroid Build Coastguard Worker# 3) Convert MSVC project files to MSVC 2005, so that anyone who has version 11*1b3f573fSAndroid Build Coastguard Worker# 2005 *or* 2008 can open them. (In version control, we keep things in 12*1b3f573fSAndroid Build Coastguard Worker# MSVC 2008 format since that's what we use in development.) 13*1b3f573fSAndroid Build Coastguard Worker# 4) Uses the result to create .tar.gz, .tar.bz2, and .zip versions and 14*1b3f573fSAndroid Build Coastguard Worker# deposits them in the "dist" directory. In the .zip version, all 15*1b3f573fSAndroid Build Coastguard Worker# non-testdata .txt files are converted to Windows-style line endings. 16*1b3f573fSAndroid Build Coastguard Worker# 5) Cleans up after itself. 17*1b3f573fSAndroid Build Coastguard Worker 18*1b3f573fSAndroid Build Coastguard Workerif [ "$1" == "" ]; then 19*1b3f573fSAndroid Build Coastguard Worker echo "USAGE: $0 DISTFILE" >&2 20*1b3f573fSAndroid Build Coastguard Worker exit 1 21*1b3f573fSAndroid Build Coastguard Workerfi 22*1b3f573fSAndroid Build Coastguard Worker 23*1b3f573fSAndroid Build Coastguard Workerif [ ! -e $1 ]; then 24*1b3f573fSAndroid Build Coastguard Worker echo $1": File not found." >&2 25*1b3f573fSAndroid Build Coastguard Worker exit 1 26*1b3f573fSAndroid Build Coastguard Workerfi 27*1b3f573fSAndroid Build Coastguard Worker 28*1b3f573fSAndroid Build Coastguard Workerset -ex 29*1b3f573fSAndroid Build Coastguard Worker 30*1b3f573fSAndroid Build Coastguard WorkerLANGUAGES="cpp csharp java objectivec python ruby php all" 31*1b3f573fSAndroid Build Coastguard WorkerBASENAME=`basename $1 .tar.gz` 32*1b3f573fSAndroid Build Coastguard WorkerVERSION=${BASENAME:9} 33*1b3f573fSAndroid Build Coastguard Worker 34*1b3f573fSAndroid Build Coastguard Worker# Create a directory called "dist", copy the tarball there and unpack it. 35*1b3f573fSAndroid Build Coastguard Workermkdir dist 36*1b3f573fSAndroid Build Coastguard Workercp $1 dist 37*1b3f573fSAndroid Build Coastguard Workercd dist 38*1b3f573fSAndroid Build Coastguard Workertar zxvf $BASENAME.tar.gz 39*1b3f573fSAndroid Build Coastguard Workerrm $BASENAME.tar.gz 40*1b3f573fSAndroid Build Coastguard Worker 41*1b3f573fSAndroid Build Coastguard Worker# Set the entire contents to be user-writable. 42*1b3f573fSAndroid Build Coastguard Workerchmod -R u+w $BASENAME 43*1b3f573fSAndroid Build Coastguard Workercd $BASENAME 44*1b3f573fSAndroid Build Coastguard Worker 45*1b3f573fSAndroid Build Coastguard Workerfor LANG in $LANGUAGES; do 46*1b3f573fSAndroid Build Coastguard Worker # Build the dist again in .tar.gz 47*1b3f573fSAndroid Build Coastguard Worker ./configure DIST_LANG=$LANG 48*1b3f573fSAndroid Build Coastguard Worker make dist-gzip 49*1b3f573fSAndroid Build Coastguard Worker mv $BASENAME.tar.gz ../protobuf-$LANG-$VERSION.tar.gz 50*1b3f573fSAndroid Build Coastguard Workerdone 51*1b3f573fSAndroid Build Coastguard Worker 52*1b3f573fSAndroid Build Coastguard Worker# Convert all text files to use DOS-style line endings, then build a .zip 53*1b3f573fSAndroid Build Coastguard Worker# distribution. 54*1b3f573fSAndroid Build Coastguard Workertodos *.txt */*.txt 55*1b3f573fSAndroid Build Coastguard Worker 56*1b3f573fSAndroid Build Coastguard Workerfor LANG in $LANGUAGES; do 57*1b3f573fSAndroid Build Coastguard Worker # Build the dist again in .zip 58*1b3f573fSAndroid Build Coastguard Worker ./configure DIST_LANG=$LANG 59*1b3f573fSAndroid Build Coastguard Worker make dist-zip 60*1b3f573fSAndroid Build Coastguard Worker mv $BASENAME.zip ../protobuf-$LANG-$VERSION.zip 61*1b3f573fSAndroid Build Coastguard Workerdone 62*1b3f573fSAndroid Build Coastguard Worker 63*1b3f573fSAndroid Build Coastguard Workercd .. 64*1b3f573fSAndroid Build Coastguard Workerrm -rf $BASENAME 65