This directory consumes tools from other repositories for use on the
bots. For a similarly-configured local checkout for testing, run:

   mkdir boringssl-gclient
   cd boringssl-gclient
   gclient config --unmanaged --deps-file=util/bot/DEPS https://boringssl.googlesource.com/boringssl/
   gclient sync

To update to newer revisions, follow these instructions:

DEPS: Set all revisions to those used in Chromium, found at
   https://chromium.googlesource.com/chromium/src/+/master/DEPS (Search for the
   corresponding repository name.)

go/bootstrap.py: Set TOOLSET_VERSION to the latest release of Go, found at
    https://golang.org/dl/.

update_clang.py: Set CLANG_REVISION and CLANG_SUB_REVISION to the values used in
    Chromium, found at
    https://chromium.googlesource.com/chromium/src/+/master/tools/clang/scripts/update.py

vs_toolchain.py: Update _GetDesiredVsToolchainHashes from Chromium, found at
    https://chromium.googlesource.com/chromium/src/+/master/build/vs_toolchain.py
    This may require taking other updates to that file. (Don't remove MSVC
    versions if BoringSSL still needs to support them.)

The .sha1 files correspond to files downloaded from Google Cloud Storage. To
update, place the updated files in their intended location and run:

    upload_to_google_storage.py -b chromium-tools FILE

cmake-linux64.tar.gz: Download the latest CMake source tarball, found at
    https://cmake.org/download/. Build it with:

        ./bootstrap --prefix=$PWD/cmake-linux64 && make && make install
        tar -czf cmake-linux64.tar.gz cmake-linux64/

    The current revision was built against cmake-3.10.0.tar.gz.

cmake-mac.tar.gz: Follow the same instructions as above on a Mac, but replace
    cmake-linux64 with cmake-mac.

    The current revision was built against cmake-3.10.0.tar.gz.

cmake-win32.zip: Update to the latest prebuilt release of CMake, found at
    https://cmake.org/download/. Use the file labeled "Windows win64-x64
    ZIP". The download will be named cmake-VERSION-win64-x64.zip.

    The current revision is cmake-3.11.4-win64-x64.zip

nasm-win32.exe: Update to the appropriate release of NASM, found at
    https://www.nasm.us/. Use the same version as Chromium, found at
    https://chromium.googlesource.com/chromium/src/+/master/third_party/nasm/README.chromium
    Extract nasm.exe from the download named nasm-VERSION-win64.zip.

    The current revision is nasm-2.13.03-win64.zip.

    TODO(davidben): The Chromium link currently does not work. It will get
    filled in in the future. See https://crbug.com/766721.

perl-win32.zip: Update to the latest 64-bit prebuilt "Portable" edition of
    Strawberry Perl, found at http://strawberryperl.com/releases.html. The
    download will be named strawberry-perl-VERSION-64bit-portable.zip.

    The current revision is strawberry-perl-5.26.2.1-64bit-portable.zip.

Finally, update sde-linux64.tar.bz2 and sde-win32.tar.bz2 by downloading the
latet release from Intel at
https://software.intel.com/en-us/articles/intel-software-development-emulator,
but upload it with the following command. (Note the bucket is different.)

    upload_to_google_storage.py -b chrome-boringssl-sde sde-linux64.tar.bz2 sde-win32.tar.bz2

The current revision is sde-external-8.50.0-2020-03-26-*.tar.bz2.

When adding new files, remember to update .gitignore.
