deps: use 'master-with-bazel' branch of BoringSSL

It should be more or less the same as master, but it also has a less
strict build configuration and doesn't require go and perl for build.

Fixes #589.
diff --git a/.travis.yml b/.travis.yml
index d02538c..3ecdfbb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -22,11 +22,6 @@
        apt:
          packages:
          - [*linux_deps, gcc-multilib, g++-multilib]
-     before_install:
-      # Install and use the current stable release of Go
-      - gimme --list
-      - eval "$(gimme stable)"
-      - gimme --list
      install:
       - rustup component add clippy
       - rustup target add $TARGET_32
@@ -56,11 +51,6 @@
        apt:
          packages:
          - [*linux_deps]
-     before_install:
-      # Install and use the current stable release of Go
-      - gimme --list
-      - eval "$(gimme stable)"
-      - gimme --list
      install:
       - rustup component add rustfmt
       - cargo install cargo-fuzz
@@ -106,7 +96,7 @@
        TARGET_64=x86_64-pc-windows-msvc
        TARGET_32=i686-pc-windows-msvc
      before_install:
-      - choco install golang nasm
+      - choco install nasm
       # Update $PATH
       - export PATH="$(powershell -Command '("Process", "Machine" | % { [Environment]::GetEnvironmentVariable("PATH", $_) -Split ";" -Replace "\\$", "" } | Select -Unique | % { cygpath $_ }) -Join ":"')"
      install:
@@ -169,11 +159,6 @@
        apt:
          packages:
          - [*linux_deps]
-     before_install:
-      # Install and use the current stable release of Go
-      - gimme --list
-      - eval "$(gimme stable)"
-      - gimme --list
      script:
       - curl -O https://nginx.org/download/nginx-$NGINX_VER.tar.gz
       - tar xzf nginx-$NGINX_VER.tar.gz
diff --git a/Cargo.toml b/Cargo.toml
index 9cf3cb0..8c78159 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -18,13 +18,9 @@
      "/benches",
      "/deps/boringssl/**/*.[chS]",
      "/deps/boringssl/**/*.cc",
-     "/deps/boringssl/**/*.errordata",
-     "/deps/boringssl/**/*.go",
-     "/deps/boringssl/**/*.pl",
      "/deps/boringssl/**/CMakeLists.txt",
-     "/deps/boringssl/*.md",
+     "/deps/boringssl/**/sources.cmake",
      "/deps/boringssl/LICENSE",
-     "/deps/boringssl/sources.cmake",
      "/examples",
      "/include",
      "/quiche.svg",
diff --git a/README.md b/README.md
index ddff27e..d73ae62 100644
--- a/README.md
+++ b/README.md
@@ -251,11 +251,11 @@
 
 Note that [BoringSSL], which is used to implement QUIC's cryptographic handshake
 based on TLS, needs to be built and linked to quiche. This is done automatically
-when building quiche using cargo, but requires the `cmake`, `go` and `perl`
-commands to be available during the build process. On Windows you also need
-[NASM](https://www.nasm.us/). The
-[official BoringSSL documentation](https://github.com/google/boringssl/blob/master/BUILDING.md)
-has more details.
+when building quiche using cargo, but requires the `cmake` command to be
+available during the build process. On Windows you also need
+[NASM](https://www.nasm.us/). The [official BoringSSL
+documentation](https://github.com/google/boringssl/blob/master/BUILDING.md) has
+more details.
 
 In alternative you can use your own custom build of BoringSSL by configuring
 the BoringSSL directory with the ``QUICHE_BSSL_PATH`` environment variable:
diff --git a/deps/boringssl b/deps/boringssl
index 88024df..597b810 160000
--- a/deps/boringssl
+++ b/deps/boringssl
@@ -1 +1 @@
-Subproject commit 88024df12147e56b6abd66b743ff441a0aaa09a8
+Subproject commit 597b810379e126ae05d32c1d94b1a9464385acd0
diff --git a/extras/nginx/nginx-1.16.patch b/extras/nginx/nginx-1.16.patch
index 9b37a9f..fb821f6 100644
--- a/extras/nginx/nginx-1.16.patch
+++ b/extras/nginx/nginx-1.16.patch
@@ -90,8 +90,8 @@
 +	&& cmake -DCMAKE_C_FLAGS="$OPENSSL_OPT" -DCMAKE_CXX_FLAGS="$OPENSSL_OPT" .. \\
 +	&& \$(MAKE) VERBOSE=1 \\
 +	&& cd .. \\
-+	&& cp -r include/openssl/*.h .openssl/include/openssl \\
-+	&& cp build/ssl/libssl.a build/crypto/libcrypto.a .openssl/lib
++	&& cp -r src/include/openssl/*.h .openssl/include/openssl \\
++	&& cp build/libssl.a build/libcrypto.a .openssl/lib
  
  END
  
diff --git a/src/build.rs b/src/build.rs
index 52aded8..98774aa 100644
--- a/src/build.rs
+++ b/src/build.rs
@@ -44,7 +44,7 @@
 /// MSVC generator on Windows place static libs in a target sub-folder,
 /// so adjust library location based on platform and build target.
 /// See issue: https://github.com/alexcrichton/cmake-rs/issues/18
-fn get_boringssl_platform_output_path(lib: &str) -> String {
+fn get_boringssl_platform_output_path() -> String {
     if cfg!(windows) {
         // Code under this branch should match the logic in cmake-rs
         let debug_env_var =
@@ -53,9 +53,7 @@
         let deb_info = match &debug_env_var[..] {
             "false" => false,
             "true" => true,
-            unknown => {
-                panic!("Unknown DEBUG={} env var.", unknown);
-            },
+            unknown => panic!("Unknown DEBUG={} env var.", unknown),
         };
 
         let opt_env_var = std::env::var("OPT_LEVEL")
@@ -70,14 +68,12 @@
                     "Release"
                 },
             "s" | "z" => "MinSizeRel",
-            unknown => {
-                panic!("Unknown OPT_LEVEL={} env var.", unknown);
-            },
+            unknown => panic!("Unknown OPT_LEVEL={} env var.", unknown),
         };
 
-        format!("{}/{}", lib, subdir)
+        subdir.to_string()
     } else {
-        lib.to_string()
+        "".to_string()
     }
 }
 
@@ -158,7 +154,7 @@
             if arch == "x86" && os != "windows" {
                 boringssl_cmake.define(
                     "CMAKE_TOOLCHAIN_FILE",
-                    pwd.join("deps/boringssl/util/32-bit-toolchain.cmake")
+                    pwd.join("deps/boringssl/src/util/32-bit-toolchain.cmake")
                         .as_os_str(),
                 );
             }
@@ -213,14 +209,11 @@
             cfg.build_target("bssl").build().display().to_string()
         });
 
-        let crypto_path = get_boringssl_platform_output_path("crypto");
-        let crypto_dir = format!("{}/build/{}", bssl_dir, crypto_path);
-        println!("cargo:rustc-link-search=native={}", crypto_dir);
-        println!("cargo:rustc-link-lib=static=crypto");
+        let build_path = get_boringssl_platform_output_path();
+        let build_dir = format!("{}/build/{}", bssl_dir, build_path);
+        println!("cargo:rustc-link-search=native={}", build_dir);
 
-        let ssl_path = get_boringssl_platform_output_path("ssl");
-        let ssl_dir = format!("{}/build/{}", bssl_dir, ssl_path);
-        println!("cargo:rustc-link-search=native={}", ssl_dir);
+        println!("cargo:rustc-link-lib=static=crypto");
         println!("cargo:rustc-link-lib=static=ssl");
     }