]> granicus.if.org Git - apache/blobdiff - README.cmake
mpm_prefork: follow up to r1635521.
[apache] / README.cmake
index 52db0e46373286167b8e1e46981c56fbd0ad330f..f2fa3181870f88449095b170061262e1b1659250 100644 (file)
@@ -15,12 +15,6 @@ This build support is experimental.  Specifically,
   release to release as feedback is received from users and bugs and
   limitations are resolved.
 
-This can be used with Apache httpd 2.4.x by copying the following files from
-httpd trunk (in Subversion) into the 2.4.x source tree:
-
-* CMakeLists.txt
-* build/cpR_noreplace.pl
-
 Important: Refer to the "Known Bugs and Limitations" section for further
            information.
 
@@ -45,13 +39,13 @@ The following tools must be in PATH:
 The following support libraries are mandatory:
 
 * APR, built with cmake
-  + Either APR 2.0-dev (trunk) or APR 1.4.x and APR-Util 1.5.x.
+  + Either APR 2.0-dev (trunk) or APR 1.5.x and APR-Util 1.5.x.
   + When building APR (but not APR-Util), specify the build option
     APR_INSTALL_PRIVATE_H so that non-standard files required for building
     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,
@@ -65,6 +59,25 @@ enabled:
 * 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.
+
 How to build
 ------------
 
@@ -133,7 +146,7 @@ How to build
 
        For NMake Makefiles the choices are at least DEBUG, RELEASE,
        RELWITHDEBINFO, and MINSIZEREL
-       Other backends make have other selections.
+       Other backends may have other selections.
 
    ENABLE_foo:
 
@@ -193,14 +206,23 @@ How to build
        the autoconf-based build.  Key differences: The modpath (e.g., 
        "generators") isn't provided or used, and the copy of the module
        source being built is automatically updated when it changes.
-       See also EXTRA_INCLUDE_DIRS.
+       See also EXTRA_COMPILE_FLAGS, EXTRA_INCLUDES, and EXTRA_LIBS.
+
+   EXTRA_COMPILE_FLAGS:
+
+       Space-delimited compile flags to define with the build.
 
-   EXTRA_INCLUDE_DIRS:
+   EXTRA_INCLUDES:
 
        List of additional directories to search for .h files.  This may
        be necessary when including third-party modules in the httpd build
        via WITH_MODULES.
 
+   EXTRA_LIBS:
+
+       List of additional libraries to link with.  This may be necessary when
+       including third-party modules in the httpd build via WITH_MODULES.
+
    Port and SSLPort:
 
        Port numbers for substitution into default .conf files.  (The defaults
@@ -272,16 +294,10 @@ Known Bugs and Limitations
 * ApacheMonitor has a build error and is disabled
 * CGI examples aren't installed
 * dbmmanage.pl and wintty aren't built/installed
-* mod_dav.lib and any similar libraries aren't installed, nor are any .exp
-  files (though I'm not sure that is a problem)
 * module enablement defaults are not in sync with the autoconf-based build
 * no support for static support library builds; unclear if that is a
   requirement; if so: taking PCRE as an example, we'd need to detect that it
   is static and then turn on PCRE_STATIC for the libhttpd build
-* program attributes like descriptive name and version aren't set for most
-  binaries
-* build/cpR_noreplace.pl doesn't declare what version of Perl is required
-  and doesn't work with File::Path that is missing make_path
 
 Generally: