ci: update Travis configuration

 * Add testing on arm64, ppc64le, and s390x with select compiler versions
 * Allow disabling the headers check by setting DISABLE_HEADERS_CHECK
 * Drop all versions of gcc < 7 and clang < 5
 * Add clang 11 (development branch)
 * Reenable ASan on Linux with gcc 9 and clang 7, the upstream
   bugs have been fixed; ASan on clang 8 remains disabled
 * Drop Xcode 9.2 (macOS 10.12 is no longer supported)
 * Upgrade Xcode 11 to 11.3
 * Remove USE_OPENSSL_1_1 and always build with openssl 1.1.1,
   since that's the only version available on Homebrew now
 * Workaround issue with missing /usr/local/opt/openssl on macOS
 * Various cleanups

Change-Id: I90e7d61d176b60c1e6b90d2374a7a51dd1deabb3
diff --git a/.jenkins.d/00-deps.sh b/.jenkins.d/00-deps.sh
index ba85553..ae45ce5 100755
--- a/.jenkins.d/00-deps.sh
+++ b/.jenkins.d/00-deps.sh
@@ -7,13 +7,7 @@
 set -x
 
 if has OSX $NODE_LABELS; then
-    FORMULAE=(boost pkg-config)
-    if [[ -n $USE_OPENSSL_1_1 ]]; then
-        FORMULAE+=(openssl@1.1)
-    else
-        FORMULAE+=(openssl)
-    fi
-
+    FORMULAE=(boost openssl pkg-config)
     brew update
     if [[ -n $TRAVIS ]]; then
         # Travis images come with a large number of brew packages
diff --git a/.jenkins.d/10-build.sh b/.jenkins.d/10-build.sh
index 66ec27f..3d2e3bb 100755
--- a/.jenkins.d/10-build.sh
+++ b/.jenkins.d/10-build.sh
@@ -16,35 +16,31 @@
 elif [[ -z $DISABLE_ASAN ]]; then
     ASAN="--with-sanitizer=address"
 fi
-if [[ -n $USE_OPENSSL_1_1 ]] && has OSX $NODE_LABELS; then
-    OPENSSL="--with-openssl=/usr/local/opt/openssl@1.1"
-fi
 
 # Cleanup
 sudo_preserve_env PATH -- ./waf --color=yes distclean
 
 if [[ $JOB_NAME != *"code-coverage" && $JOB_NAME != *"limited-build" ]]; then
-  # Configure/build static library in optimized mode with tests
-  ./waf --color=yes configure --enable-static --disable-shared --with-tests $OPENSSL
-  ./waf --color=yes build -j${WAF_JOBS:-1}
+    # Build static library in release mode with tests and without precompiled headers
+    ./waf --color=yes configure --enable-static --disable-shared --with-tests --without-pch
+    ./waf --color=yes build -j${WAF_JOBS:-1}
 
-  # Cleanup
-  sudo_preserve_env PATH -- ./waf --color=yes distclean
+    # Cleanup
+    sudo_preserve_env PATH -- ./waf --color=yes distclean
 
-  # Configure/build static and shared library in optimized mode without tests
-  ./waf --color=yes configure --enable-static --enable-shared $OPENSSL
-  ./waf --color=yes build -j${WAF_JOBS:-1}
+    # Build static and shared library in release mode without tests
+    ./waf --color=yes configure --enable-static --enable-shared
+    ./waf --color=yes build -j${WAF_JOBS:-1}
 
-  # Cleanup
-  sudo_preserve_env PATH -- ./waf --color=yes distclean
+    # Cleanup
+    sudo_preserve_env PATH -- ./waf --color=yes distclean
 fi
 
-# Configure/build shared library in debug mode with tests/examples and without precompiled headers
-./waf --color=yes configure --disable-static --enable-shared --debug --with-tests \
-                            --with-examples --without-pch $ASAN $COVERAGE $OPENSSL
+# Build shared library in debug mode with tests and examples
+./waf --color=yes configure --disable-static --enable-shared --debug --with-tests --with-examples $ASAN $COVERAGE
 ./waf --color=yes build -j${WAF_JOBS:-1}
 
-# (tests will be run against debug version)
+# (tests will be run against the debug version)
 
 # Install
 sudo_preserve_env PATH -- ./waf --color=yes install
diff --git a/.jenkins.d/40-standalone-header-compilation.sh b/.jenkins.d/40-headers-check.sh
similarity index 83%
rename from .jenkins.d/40-standalone-header-compilation.sh
rename to .jenkins.d/40-headers-check.sh
index cb600ee..1258646 100755
--- a/.jenkins.d/40-standalone-header-compilation.sh
+++ b/.jenkins.d/40-headers-check.sh
@@ -5,6 +5,11 @@
 # It's intentional not to use `set -e`, because this script wants to check all headers
 # (similar to running all test cases), instead of failing at the first error.
 
+if [[ -n $DISABLE_HEADERS_CHECK ]]; then
+  echo 'Skipping headers check.'
+  exit 0
+fi
+
 CXX=${CXX:-g++}
 STD=-std=c++14
 CXXFLAGS="-O2 -Wall -Wno-unused-const-variable -Wno-unused-local-typedef $(pkg-config --cflags libndn-cxx)"
@@ -15,14 +20,14 @@
 NCHECKED=0
 NERRORS=0
 while IFS= read -r -d '' H; do
-  echo "Verifying standalone header compilation for ${H#${INCLUDEDIR}/}"
+  echo "Checking header ${H#${INCLUDEDIR}/}"
   "$CXX" -xc++ $STD $CXXFLAGS -c -o /dev/null "$H"
   [[ $? -eq 0 ]] || ((NERRORS++))
   ((NCHECKED++))
 done < <(find "$INCLUDEDIR" -name '*.hpp' -type f -print0 2>/dev/null)
 
 if [[ $NCHECKED -eq 0 ]]; then
-  echo 'No header found. Is ndn-cxx installed?'
+  echo 'No headers found. Is ndn-cxx installed?'
   exit 1
 else
   echo "$NCHECKED headers checked."