]> granicus.if.org Git - apache/blobdiff - README.cmake
Complete build setup of mod_noloris.
[apache] / README.cmake
index 3f1e72ada4755459030fa33c97f6830d95f1cd30..b0c3b041e607e553fa2ff0819af4aea48af270ae 100644 (file)
@@ -31,6 +31,8 @@ Prerequisites
 The following tools must be in PATH:
 
 * cmake, version 2.8 or later
+  cmake version 3.1.3 or later is required to work with current OpenSSL
+  releases.  (OpenSSL is an optional prerequisite of httpd.)
 * Perl
 * If the WITH_MODULES feature is used: awk
 * If using a command-line compiler: compiler and linker and related tools
@@ -45,7 +47,7 @@ The following support libraries are mandatory:
     Apache httpd are installed.
   + Additional APR settings affect httpd but are not mandatory, such as
     APR_HAVE_IPV6.
-* PCRE
+* PCRE (version 6.7 or higher)
 
 Certain optional features of APR 2.0-dev (trunk) or APR-Util 1.5.x
 allow some optional features of httpd to be enabled.  For example,
@@ -56,9 +58,40 @@ enabled:
 
 * libxml2 (e.g., mod_proxy_html)
 * lua 5.1 (mod_lua)
+* nghttp2 (mod_http2)
 * openssl (mod_ssl and https support for ab)
 * zlib (mod_deflate)
 
+OpenSSL
+-------
+
+If you have a binary install of OpenSSL in a well-known directory (e.g.,
+%HOME%\OpenSSL-Win64) and you wish to build httpd against a different
+install of OpenSSL, the cmake build may unexpectedly select OpenSSL
+libraries in the well-known directory even if the expected include files
+are used.  Check the cmake output from your httpd build to confirm that
+the expected OpenSSL libraries and include files are used.
+
+The cmake FindOpenSSL module searches for OpenSSL libraries in a "VC"
+subdirectory of the OpenSSL install with filenames that indicate the build
+type (e.g., "<PREFIX>/lib/VC/ssleay32MD.lib"); defining CMAKE_PREFIX_PATH
+or OPENSSL_ROOT_DIR or even OPENSSL_LIBRARIES does not circumvent finding
+these libraries.
+
+To work around this issue, rename the well-known OpenSSL directory while
+building httpd.  Let us know if you find a better solution.
+
+nghttp2
+-------
+
+This is required for mod_http2.
+
+cmake-based build support for nghttp2 for Windows can be found at
+https://github.com/trawick/nghttp2-minimal-cmake.  That easily fits into
+a build system that already uses cmake for httpd, apr, and perhaps other
+packages.  A dynamic build of nghttp2 using its normal Windows build
+system should also be usable by nghttp2.
+
 How to build
 ------------
 
@@ -78,7 +111,8 @@ How to build
 
    Alternately, you can use the cmake-gui and update settings in the GUI.
 
-   PCRE_INCLUDE_DIR, PCRE_LIBRARIES, APR_INCLUDE_DIR, APR_LIBRARIES:
+   PCRE_INCLUDE_DIR, PCRE_LIBRARIES, APR_INCLUDE_DIR, APR_LIBRARIES,
+     NGHTTP2_INCLUDE_DIR, NGHTTP2_LIBRARIES:
 
        cmake doesn't bundle FindXXX for these packages, so the crucial
        information has to be specified in this manner if they aren't found
@@ -113,6 +147,12 @@ How to build
        APR-Util are found in the default location, the LDAP library will be
        included if it is present.
 
+     -DNGHTTP2_INCLUDE_DIR=d:/path/to/nghttp2inst/include  (which has nghttp2/*.h)
+     -DNGHTTP2_LIBRARIES=d:/path/to/nghttp2inst/lib/nghttp2.lib"
+
+       These will have to be specified if nghttp2 was installed to a different
+       directory than httpd.
+
    LIBXML2_ICONV_INCLUDE_DIR, LIBXML2_ICONV_LIBRARIES
 
       If using a module that requires libxml2 *and* the build of libxml2 requires