build.sh 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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. # Cross-build for aarch64 and ppc64le. Note: we do these builds first to avoid
  10. # file permission issues. The Docker builds will create directories owned by
  11. # root, which causes problems if we try to add new artifacts to those
  12. # directories afterward.
  13. sudo apt install -y g++-aarch64-linux-gnu
  14. protoc-artifacts/build-protoc.sh linux aarch_64 protoc
  15. sudo apt install -y g++-powerpc64le-linux-gnu
  16. protoc-artifacts/build-protoc.sh linux ppcle_64 protoc
  17. # Use docker image to build linux artifacts.
  18. DOCKER_IMAGE_NAME=protobuf/protoc_$(sha1sum protoc-artifacts/Dockerfile | cut -f1 -d " ")
  19. docker pull $DOCKER_IMAGE_NAME
  20. docker run -v $(pwd):/var/local/protobuf --rm $DOCKER_IMAGE_NAME \
  21. bash -l /var/local/protobuf/protoc-artifacts/build-protoc.sh \
  22. linux x86_64 protoc || {
  23. echo "Failed to build protoc for linux + x86_64."
  24. exit 1
  25. }
  26. docker run -v $(pwd):/var/local/protobuf --rm $DOCKER_IMAGE_NAME \
  27. bash -l /var/local/protobuf/protoc-artifacts/build-protoc.sh \
  28. linux x86_32 protoc || {
  29. echo "Failed to build protoc for linux + x86_32."
  30. exit 1
  31. }