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