Home | History | Annotate | Download | only in protobuf
      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 
     30 LANGUAGES="cpp csharp java javanano js objectivec python ruby"
     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
     65