17ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen#!/bin/bash 27ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen 37ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen# Run this script in the top nanopb directory to create a binary package 47ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen# for Linux users. 57ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen 67ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohenset -e 77ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohenset -x 87ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen 97ef855e462b9a18b7d330e4b40f350164a6ad9daEtan CohenVERSION=`git describe --always`-linux-x86 107ef855e462b9a18b7d330e4b40f350164a6ad9daEtan CohenDEST=dist/$VERSION 117ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen 127ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohenrm -rf $DEST 137ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohenmkdir -p $DEST 147ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen 157ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen# Export the files from newest commit 167ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohengit archive HEAD | tar x -C $DEST 177ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen 187ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen# Rebuild the Python .proto files 197ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohenmake -BC $DEST/generator/proto 207ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen 217ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen# Make the nanopb generator available as a protoc plugin 227ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohencp $DEST/generator/nanopb_generator.py $DEST/generator/protoc-gen-nanopb.py 237ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen 247ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen# Package the Python libraries 257ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen( cd $DEST/generator; bbfreeze nanopb_generator.py protoc-gen-nanopb.py ) 267ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohenmv $DEST/generator/dist $DEST/generator-bin 277ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen 287ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen# Remove temp file 297ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohenrm $DEST/generator/protoc-gen-nanopb.py 307ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen 317ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen# Package the protoc compiler 327ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohencp `which protoc` $DEST/generator-bin/protoc.bin 337ef855e462b9a18b7d330e4b40f350164a6ad9daEtan CohenLIBPROTOC=$(ldd `which protoc` | grep -o '/.*libprotoc[^ ]*') 347ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohencp $LIBPROTOC $DEST/generator-bin/ 357ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohencat > $DEST/generator-bin/protoc << EOF 367ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen#!/bin/bash 377ef855e462b9a18b7d330e4b40f350164a6ad9daEtan CohenSCRIPTDIR=\$(dirname "\$0") 387ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohenexport LD_LIBRARY_PATH=\$SCRIPTDIR 397ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohenexport PATH=\$SCRIPTDIR:\$PATH 407ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohenexec "\$SCRIPTDIR/protoc.bin" "\$@" 417ef855e462b9a18b7d330e4b40f350164a6ad9daEtan CohenEOF 427ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohenchmod +x $DEST/generator-bin/protoc 437ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen 447ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen# Tar it all up 457ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen( cd dist; tar -czf $VERSION.tar.gz $VERSION ) 467ef855e462b9a18b7d330e4b40f350164a6ad9daEtan Cohen 47