build.sh 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #!/bin/bash
  2. set -x
  3. # Change to repo root.
  4. cd $(dirname $0)/../../../..
  5. # Initialize any submodules.
  6. git submodule update --init --recursive
  7. # Generate the configure script.
  8. ./autogen.sh
  9. # Use docker image to build linux artifacts.
  10. DOCKER_IMAGE_NAME=protobuf/protoc_$(sha1sum protoc-artifacts/Dockerfile | cut -f1 -d " ")
  11. docker pull $DOCKER_IMAGE_NAME
  12. docker run -v $(pwd):/var/local/protobuf --rm $DOCKER_IMAGE_NAME \
  13. bash -l /var/local/protobuf/protoc-artifacts/build-protoc.sh \
  14. linux x86_64 protoc || {
  15. echo "Failed to build protoc for linux + x86_64."
  16. exit 1
  17. }
  18. docker run -v $(pwd):/var/local/protobuf --rm $DOCKER_IMAGE_NAME \
  19. bash -l /var/local/protobuf/protoc-artifacts/build-protoc.sh \
  20. linux x86_32 protoc || {
  21. echo "Failed to build protoc for linux + x86_32."
  22. exit 1
  23. }
  24. # Cross-build for some architectures.
  25. # TODO(xiaofeng): It currently fails with "machine `aarch64' not recognized"
  26. # error.
  27. # sudo apt install -y g++-aarch64-linux-gnu
  28. # protoc-artifacts/build-protoc.sh linux aarch_64 protoc