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