build: align minimum build dependencies with ndn-cxx

 * Recommend boost >= 1.65.1 and gcc >= 7.4.0
 * Require clang >= 4.0, or Xcode >= 9.0 on macOS
 * Silence an ABI-related diagnostic message from gcc on armv7
 * Fix redundant-tags warning with gcc 10
 * Add CentOS-specific instructions to docs/INSTALL.rst
 * Add Xcode 11.5 to Travis CI

Refs: #5087, #5106
Change-Id: I70746729a132ecb07d4788934385bb403039dba9
diff --git a/wscript b/wscript
index a7e4906..003fc6c 100644
--- a/wscript
+++ b/wscript
@@ -1,6 +1,6 @@
 # -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 """
-Copyright (c) 2014-2019,  Regents of the University of California,
+Copyright (c) 2014-2020,  Regents of the University of California,
                           Arizona Board of Regents,
                           Colorado State University,
                           University Pierre & Marie Curie, Sorbonne University,
@@ -34,27 +34,27 @@
 
 def options(opt):
     opt.load(['compiler_cxx', 'gnu_dirs'])
-    opt.load(['default-compiler-flags', 'compiler-features',
+    opt.load(['default-compiler-flags',
               'coverage', 'pch', 'sanitizers', 'boost',
               'dependency-checker', 'unix-socket', 'websocket',
               'doxygen', 'sphinx_build'],
              tooldir=['.waf-tools'])
 
-    nfdopt = opt.add_option_group('NFD Options')
+    optgrp = opt.add_option_group('NFD Options')
 
-    opt.addUnixOptions(nfdopt)
-    opt.addDependencyOptions(nfdopt, 'libresolv')
-    opt.addDependencyOptions(nfdopt, 'librt')
-    opt.addDependencyOptions(nfdopt, 'libpcap')
-    nfdopt.add_option('--without-libpcap', action='store_true', default=False,
+    opt.addUnixOptions(optgrp)
+    opt.addDependencyOptions(optgrp, 'libresolv')
+    opt.addDependencyOptions(optgrp, 'librt')
+    opt.addDependencyOptions(optgrp, 'libpcap')
+    optgrp.add_option('--without-libpcap', action='store_true', default=False,
                       help='Disable libpcap (Ethernet face support will be disabled)')
-    nfdopt.add_option('--without-systemd', action='store_true', default=False,
+    optgrp.add_option('--without-systemd', action='store_true', default=False,
                       help='Disable systemd integration')
-    opt.addWebsocketOptions(nfdopt)
+    opt.addWebsocketOptions(optgrp)
 
-    nfdopt.add_option('--with-tests', action='store_true', default=False,
+    optgrp.add_option('--with-tests', action='store_true', default=False,
                       help='Build unit tests')
-    nfdopt.add_option('--with-other-tests', action='store_true', default=False,
+    optgrp.add_option('--with-other-tests', action='store_true', default=False,
                       help='Build other tests')
 
 PRIVILEGE_CHECK_CODE = '''
@@ -84,8 +84,8 @@
 
 def configure(conf):
     conf.load(['compiler_cxx', 'gnu_dirs',
-               'default-compiler-flags', 'compiler-features',
-               'pch', 'boost', 'dependency-checker', 'websocket',
+               'default-compiler-flags', 'boost',
+               'pch', 'dependency-checker', 'websocket',
                'doxygen', 'sphinx_build'])
 
     conf.env.WITH_TESTS = conf.options.with_tests
@@ -114,9 +114,13 @@
 
     conf.check_boost(lib=boost_libs, mt=True)
     if conf.env.BOOST_VERSION_NUMBER < 105800:
-        conf.fatal('Minimum required Boost version is 1.58.0\n'
-                   'Please upgrade your distribution or manually install a newer version of Boost'
-                   ' (https://redmine.named-data.net/projects/nfd/wiki/Boost_FAQ)')
+        conf.fatal('The minimum supported version of Boost is 1.65.1.\n'
+                   'Please upgrade your distribution or manually install a newer version of Boost.\n'
+                   'For more information, see https://redmine.named-data.net/projects/nfd/wiki/Boost')
+    elif conf.env.BOOST_VERSION_NUMBER < 106501:
+        Logs.warn('WARNING: Using a version of Boost older than 1.65.1 is not officially supported and may not work.\n'
+                  'If you encounter any problems, please upgrade your distribution or manually install a newer version of Boost.\n'
+                  'For more information, see https://redmine.named-data.net/projects/nfd/wiki/Boost')
 
     conf.load('unix-socket')