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 LIBPROTOBUF=$(ldd `which protoc` | grep -o '/.*libprotobuf[^ ]*') 35 cp $LIBPROTOC $LIBPROTOBUF $DEST/generator-bin/ 36 cat > $DEST/generator-bin/protoc << EOF 37 #!/bin/bash 38 SCRIPTDIR=\$(dirname "\$0") 39 export LD_LIBRARY_PATH=\$SCRIPTDIR 40 export PATH=\$SCRIPTDIR:\$PATH 41 exec "\$SCRIPTDIR/protoc.bin" "\$@" 42 EOF 43 chmod +x $DEST/generator-bin/protoc 44 45 # Tar it all up 46 ( cd dist; tar -czf $VERSION.tar.gz $VERSION ) 47 48