httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From traw...@apache.org
Subject svn commit: r1518736 - in /httpd/httpd/trunk: CMakeLists.txt README.cmake
Date Thu, 29 Aug 2013 17:59:11 GMT
Author: trawick
Date: Thu Aug 29 17:59:11 2013
New Revision: 1518736

URL: http://svn.apache.org/r1518736
Log:
move cmake howto/buglist to a separate file, README.cmake
add license text to CMakeLists.txt

Added:
    httpd/httpd/trunk/README.cmake   (with props)
Modified:
    httpd/httpd/trunk/CMakeLists.txt

Modified: httpd/httpd/trunk/CMakeLists.txt
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CMakeLists.txt?rev=1518736&r1=1518735&r2=1518736&view=diff
==============================================================================
--- httpd/httpd/trunk/CMakeLists.txt (original)
+++ httpd/httpd/trunk/CMakeLists.txt Thu Aug 29 17:59:11 2013
@@ -1,87 +1,21 @@
-PROJECT(HTTPD C)
-
-# Experimental cmake-based build support for Apache httpd on Windows
-#
-# General usage:
-# 0. Read the todos down below and make sure this is good enough for your
-#    purposes.
-# 1. cd to a clean directory for building (i.e., don't build in your
-#    source tree)
-# 2. Make sure Perl is in your PATH.  Additionally, some backends may want
-#    your compile tools in PATH.  (Hint: "Visual Studio Command Prompt")
-#    In the unlikely event that you use -DWITH_MODULES, make sure awk is
-#    in PATH.
-# 3. cmake -G "some backend, like 'NMake Makefiles'" \
-#          -DCMAKE_INSTALL_PREFIX=d:/path/to/httpdinst \
-#          -DPCRE_INCLUDE_DIR=d:/path/to/pcreinst/include \
-#          -DPCRE_LIBRARIES=d:/path/to/pcreinst/lib/pcre[d].lib \
-#          -DAPR_INCLUDE_DIR=d:/path/to/aprinst/include \
-#          -DAPR_LIBRARIES="d:/path/to/aprinst/lib/libapr-1.lib;d:/path/to/aprinst/lib/libaprutil-1.lib"
\
-#          -DENABLE_MOD_foo="A|I|O" \
-#          d:/path/to/httpdsource
-#    Alternately, use cmake-gui and update settings in the GUI.
-#
-#    When building with APR trunk (future APR 2.x, with integrated APR-Util),
-#    specify just libapr-2.lib:
-#
-#          -DAPR_LIBRARIES=d:/path/to/aprinst/lib/libapr-2.lib
-#
-#    Other flags of interest:
-#        LIBXML2_ICONV_INCLUDE_DIR, LIBXML2_ICONV_LIBRARIES
-#          If using a module that requires libxml2 and the build of libxml2
-#          requires iconv, set these variables to allow iconv includes
-#          and libraries to be found.
-#        CMAKE_C_FLAGS_RELEASE, _DEBUG, _RELWITHDEBINFO, _MINSIZEREL
-#        CMAKE_BUILD_TYPE
-#          For NMake Makefiles the choices are at least DEBUG, RELEASE,
-#          RELWITHDEBINFO, and MINSIZEREL
-#          Other backends make have other selections.
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
 #
-#    PCRE_INCLUDE_DIR, PCRE_LIBRARIES, APR_INCLUDE_DIR, APR_LIBRARIES:
-#        cmake doesn't bundle FindXXX for these packages, so the crucial
-#        information has to be specified in this manner
+#     http://www.apache.org/licenses/LICENSE-2.0
 #
-#    ENABLE_MOD_foo:
-#        Each module has a default setting which can be overridden with one of the
-#        following values:
-#            A        build and Activate module
-#            a        build and Activate module IFF prereqs are available
-#            I        build module but leave it Inactive (commented-out LoadModule)
-#            i        build module but leave it Inactive IFF prereqs are available
-#            O        Omit module completely
-#        Examples: -DENABLE_MOD_ACCESS_COMPAT="O" (Omit the module)
-#                  -DENABLE_MOD_PROXY_HTML="i" (If the prereqs are found, build it but
-#                                               don't activate it in the default .conf.)
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
 #
-#    WITH_MODULES:
-#        Comma-separated paths to single file modules to statically link into
-#        the server, like the --with-module=modpath:/path/to/mod_foo.c with
-#        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.
-#
-#    Port and SSLPort: port numbers for substitution into default .conf files
-#        Defaults are 80 and 443.
-#
-# 4. build using chosen backend (e.g., "nmake install")
-#
-# Todos for Windows build:
-# . Support for APR/APU optional features as module prerequisites
-#   (e.g., APU_HAVE_CRYPTO requirement of mod_session_crypto)
-# . Find support libraries:
-#   + LUA, distcache
-# . Modules not yet supported:
-#   + mod_ldap, mod_authnz_ldap, mod_socache_dc,
-#     mod_lua, mod_serf, apreq+mod_apreq, mod_session_crypto
-#   + mod_lbmethod_rr and mod_firehose, which don't compile on Windows
-# . Build buildmark.c when httpd.exe is regenerated
-# . ab + HAVE_OPENSSL isn't working at all, even for plain
-# . ApacheMonitor has a build error
-# . install CGI examples
-# . install .h files that are in odd places
-# . Sync module enablement defaults with autoconf-based build
-# . Generally: go through the existing Windows build and see what is missing, whether a
-#   feature or some build nuance
+# Read README.cmake before using this.
+
+PROJECT(HTTPD C)
 
 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
 

Added: httpd/httpd/trunk/README.cmake
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/README.cmake?rev=1518736&view=auto
==============================================================================
--- httpd/httpd/trunk/README.cmake (added)
+++ httpd/httpd/trunk/README.cmake Thu Aug 29 17:59:11 2013
@@ -0,0 +1,160 @@
+Experimental cmake-based build support for Apache httpd on Microsoft Windows
+
+Status
+------
+
+This build support is currently intended only for Microsoft Windows.
+
+This build support is experimental.  Specifically,
+
+* It does not support all features of Apache httpd.
+* Some components may not be built correctly and/or in a manner
+  compatible with the previous Windows build support.
+* Build interfaces, such as the mechanisms which are used to enable
+  optional functionality or specify prerequisites, may change from
+  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.
+
+           It is beyond the scope of this document to document or explain
+           how to utilize the various cmake features, such as different
+           build backends or provisions for finding support libraries.
+
+           Please refer to the cmake documentation for additional information
+           that applies to building any project with cmake.
+
+Prerequisites
+-------------
+
+The following tools must be in PATH:
+
+* cmake, version 2.8 or later
+* Perl
+* If the WITH_MODULES feature is used: awk
+* If using a command-line compiler: compiler and linker and related tools
+  (Refer to the cmake documentation for more information.)
+
+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.
+  + When building APR (but not APR-Util 1.5.x), 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
+
+Additional support libraries allow optional features of httpd to be enabled:
+
+* libxml2 (e.g., mod_proxy_html)
+* openssl (e.g., mod_ssl)
+* zlib (e.g., mod_deflate)
+
+How to build
+------------
+
+1. cd to a clean directory for building (i.e., don't build in your
+   source tree)
+
+2. Make sure Perl is in your PATH.  Additionally, some backends may want
+   your compile tools in PATH.  (Hint: "Visual Studio Command Prompt")
+   In the unlikely event that you use -DWITH_MODULES, make sure awk is
+   in PATH.
+
+3. cmake -G "some backend, like 'NMake Makefiles'"
+     -DCMAKE_INSTALL_PREFIX=d:/path/to/httpdinst
+     -DPCRE_INCLUDE_DIR=d:/path/to/pcreinst/include
+     -DPCRE_LIBRARIES=d:/path/to/pcreinst/lib/pcre[d].lib
+     -DAPR_INCLUDE_DIR=d:/path/to/aprinst/include
+     -DAPR_LIBRARIES="d:/path/to/aprinst/lib/libapr-1.lib;d:/path/to/aprinst/lib/libaprutil-1.lib"
+     -DENABLE_MOD_foo=A|I|O|a|i
+     d:/path/to/httpdsource
+
+   Alternately, you can use the cmake-gui and update settings in the GUI.
+
+   PCRE_INCLUDE_DIR, PCRE_LIBRARIES, APR_INCLUDE_DIR, APR_LIBRARIES:
+       cmake doesn't bundle FindXXX for these packages, so the crucial
+       information has to be specified in this manner
+
+       When building with APR trunk (future APR 2.x, with integrated APR-Util),
+       specify just the path to libapr-2.lib:
+
+           -DAPR_LIBRARIES=d:/path/to/aprinst/lib/libapr-2.lib
+
+   LIBXML2_ICONV_INCLUDE_DIR, LIBXML2_ICONV_LIBRARIES
+
+      If using a module that requires libxml2 and the build of libxml2 requires
+      iconv, set these variables to allow iconv includes and libraries to be
+      used.  For example:
+
+      -DLIBXML2_ICONV_INCLUDE_DIR=c:\iconv-1.9.2.win32\include
+      -DLIBXML2_ICONV_LIBRARIES=c:\iconv-1.9.2.win32\lib\iconv.lib
+
+   CMAKE_C_FLAGS_RELEASE, _DEBUG, _RELWITHDEBINFO, _MINSIZEREL
+   CMAKE_BUILD_TYPE
+       For NMake Makefiles the choices are at least DEBUG, RELEASE,
+       RELWITHDEBINFO, and MINSIZEREL
+       Other backends make have other selections.
+
+   ENABLE_MOD_foo:
+       Each module has a default setting which can be overridden with one of
+       the following values:
+           A        build and Activate module
+           a        build and Activate module IFF prereqs are available; if
+                    prereqs are unavailable, don't build it
+           I        build module but leave it Inactive (commented-out
+                    LoadModule directive)
+           i        build module but leave it Inactive IFF prereqs are
+                    available; if prereqs are unavailable, don't build it
+           O        Omit module completely
+
+       Examples: -DENABLE_MOD_ACCESS_COMPAT=O
+                 -DENABLE_MOD_PROXY_HTML=i
+
+   WITH_MODULES:
+       Comma-separated paths to single file modules to statically link into
+       the server, like the --with-module=modpath:/path/to/mod_foo.c with
+       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.
+
+   Port and SSLPort: port numbers for substitution into default .conf files.
+   (The defaults are 80 and 443.)
+
+4. build using chosen backend (e.g., "nmake install")
+
+Known Bugs and Limitations
+--------------------------
+
+* no support for APR/APU optional features as module prerequisites (e.g.,
+  the APU_HAVE_CRYPTO requirement of mod_session_crypto)
+* no logic to find support libraries needed by some modules (LUA, distcache)
+* no support for these modules:
+  + mod_ldap, mod_authnz_ldap, mod_socache_dc, mod_lua, mod_serf,
+    apreq+mod_apreq, mod_session_crypto
+  + additionally, mod_lbmethod_rr and mod_firehose don't compile on Windows
+    anyway
+* buildmark.c isn't necessarily rebuilt when httpd.exe is regenerated
+* ab + HAVE_OPENSSL isn't working at all, even for non-SSL
+* ApacheMonitor has a build error and is disabled
+* CGI examples aren't installed
+* .h files which reside outside of include are not installed
+* module enablement defaults are not in sync with the autoconf-based build
+
+Generally:
+
+* Many httpd features have not been tested with this build.
+* Developers need to examine the existing Windows build in great detail and see
+  what is missing from the cmake-based build, whether a feature or some build
+  nuance.
+* Any feedback you can provide on your experiences with this build will be
+  helpful.

Propchange: httpd/httpd/trunk/README.cmake
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message