Home | History | Annotate | Download | only in tools
      1 #!/bin/bash
      2 
      3 # Run this script in the top nanopb directory to create a binary package
      4 # for Linux users.
      5 
      6 set -e
      7 set -x
      8 
      9 VERSION=`git describe --always`-linux-x86
     10 DEST=dist/$VERSION
     11 
     12 rm -rf $DEST
     13 mkdir -p $DEST
     14 
     15 # Export the files from newest commit
     16 git archive HEAD | tar x -C $DEST
     17 
     18 # Rebuild the Python .proto files
     19 make -BC $DEST/generator/proto
     20 
     21 # Make the nanopb generator available as a protoc plugin
     22 cp $DEST/generator/nanopb_generator.py $DEST/generator/protoc-gen-nanopb.py
     23 
     24 # Package the Python libraries
     25 ( cd $DEST/generator; bbfreeze nanopb_generator.py protoc-gen-nanopb.py )
     26 mv $DEST/generator/dist $DEST/generator-bin
     27 
     28 # Remove temp file
     29 rm $DEST/generator/protoc-gen-nanopb.py
     30 
     31 # Package the protoc compiler
     32 cp `which protoc` $DEST/generator-bin/protoc.bin
     33 LIBPROTOC=$(ldd `which protoc` | grep -o '/.*libprotoc[^ ]*')
     34 cp $LIBPROTOC $DEST/generator-bin/
     35 cat > $DEST/generator-bin/protoc << EOF
     36 #!/bin/bash
     37 SCRIPTDIR=\$(dirname "\$0")
     38 export LD_LIBRARY_PATH=\$SCRIPTDIR
     39 export PATH=\$SCRIPTDIR:\$PATH
     40 exec "\$SCRIPTDIR/protoc.bin" "\$@"
     41 EOF
     42 chmod +x $DEST/generator-bin/protoc
     43 
     44 # Tar it all up
     45 ( cd dist; tar -czf $VERSION.tar.gz $VERSION )
     46 
     47