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