mirror of
				https://github.com/apache/httpd.git
				synced 2025-10-28 20:34:59 +03:00 
			
		
		
		
	git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91116 13f79535-47bb-0310-9956-ffa450edef68
		
			
				
	
	
		
			322 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			322 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 | |
|     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | |
| 
 | |
| <html xmlns="http://www.w3.org/1999/xhtml">
 | |
|   <head>
 | |
|     <meta name="generator" content="HTML Tidy, see www.w3.org" />
 | |
| 
 | |
|     <title>Compiling Apache for Microsoft Windows</title>
 | |
|   </head>
 | |
|   <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
 | |
| 
 | |
|   <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
 | |
|   vlink="#000080" alink="#FF0000">
 | |
|     <!--#include virtual="header.html" -->
 | |
| 
 | |
|     <h1 align="center">Compiling Apache for Microsoft Windows</h1>
 | |
| 
 | |
|     <p>There are many important points before you begin compiling
 | |
|     Apache. See <a href="windows.html">Using Apache with Microsoft
 | |
|     Windows</a> before you begin.</p>
 | |
| 
 | |
|     <h3><a id="requirements"
 | |
|     name="requirements">Requirements</a></h3>
 | |
| 
 | |
|     <p>Compiling Apache requires the following environment to be
 | |
|     properly installed;</p>
 | |
| 
 | |
|     <ul>
 | |
|       <li>Disk Space<br />
 | |
|       <br />
 | |
|        Make sure you have at least 50 MB of free disk space
 | |
|       available. After installation Apache requires approximately
 | |
|       10 MB of disk space, plus space for log and cache files,
 | |
|       which can grow rapidly. The actual disk space requirements
 | |
|       will vary considerably based on your chosen configuration and
 | |
|       any third-party modules or libraries.<br />
 | |
|       <br />
 | |
|       </li>
 | |
| 
 | |
|       <li>
 | |
|         Microsoft Visual C++ 5.0 or higher.<br />
 | |
|         <br />
 | |
|          Apache can be built using the command line tools, or from
 | |
|         within the Visual Studio IDE Workbench. the command line
 | |
|         tools are configured with the vcvars32 batch file: 
 | |
| <pre>
 | |
|   "c:\Program Files\DevStudio\VC\Bin\vcvars32.bat"
 | |
| </pre>
 | |
|       </li>
 | |
| 
 | |
|       <li>
 | |
|         The Windows Platform SDK.<br />
 | |
|         <br />
 | |
|          Visual C++ 5.0 need the updated Microsoft Windows Platform
 | |
|         SDK to enable some Apache features. For command line
 | |
|         builds, the Platform SDK environment is prepared by the
 | |
|         setenv batch file: 
 | |
| <pre>
 | |
|   "c:\Program Files\Platform SDK\setenv.bat"
 | |
| </pre>
 | |
|         The Platform SDK files distributed with Visual C++ 6.0 and
 | |
|         later are sufficient, so those users may skip this
 | |
|         requirement.<br />
 | |
|         <br />
 | |
|          <strong>Note</strong> that the Windows Platform SDK update
 | |
|         is required to enable all supported mod_isapi features.
 | |
|         Without a recent update, Apache will issue warnings under
 | |
|         MSVC++ 5.0 that some mod_isapi features will be disabled.
 | |
|         Look for the update at <a
 | |
|         href="http://msdn.microsoft.com/downloads/sdks/platform/platform.asp">
 | |
|         http://msdn.microsoft.com/downloads/sdks/platform/platform.asp</a>.<br />
 | |
|         <br />
 | |
|       </li>
 | |
| 
 | |
|       <li>The awk utility (awk, gawk or similar.)<br />
 | |
|       <br />
 | |
|        To install Apache within the build system, several files are
 | |
|       modified using the awk utility. awk was chosen since it is a
 | |
|       very small download (compared with Perl or WSH/VB) and
 | |
|       accomplishes the task. Brian Kernighan's <a
 | |
|       href="http://cm.bell-labs.com/cm/cs/who/bwk/">http://cm.bell-labs.com/cm/cs/who/bwk/</a>
 | |
|       site has a compiled native Win32 binary, <a
 | |
|       href="http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe">http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe</a>
 | |
|       which you should name awk.exe rather than awk95.exe.<br />
 | |
|        Note that Developer Studio IDE will only find awk.exe from
 | |
|       the <u>T</u>ools menu <u>O</u>ptions... Directories settings
 | |
|       for the Executable files. Add the path for awk.exe to this
 | |
|       list, as needed.<br />
 | |
|       <br />
 | |
|       </li>
 | |
|     </ul>
 | |
| 
 | |
|     <h3><a id="commandbuild" name="commandbuild">Command-Line
 | |
|     Build</a></h3>
 | |
| 
 | |
|     <p>First, unpack the Apache distribution into an appropriate
 | |
|     directory. Open a command-line prompt and cd to that
 | |
|     directory.</p>
 | |
| 
 | |
|     <p>The master Apache makefile instructions are contained in the
 | |
|     <code>Makefile.win</code> file. To compile Apache on Windows
 | |
|     NT, simply use one of the following commands to compiled the
 | |
|     release or debug build, respectively:</p>
 | |
| <pre>
 | |
|     nmake /f Makefile.win _apacher
 | |
| 
 | |
|     nmake /f Makefile.win _apached
 | |
| </pre>
 | |
| 
 | |
|     <p>Either command will compile Apache. The latter will include
 | |
|     debugging information in the resulting files, making it easier
 | |
|     to find bugs and track down problems.</p>
 | |
| 
 | |
|     <h3><a id="workspacebuild" name="workspacebuild">Developer
 | |
|     Studio Workspace IDE Build</a></h3>
 | |
| 
 | |
|     <p>Apache can also be compiled using VC++'s VisualStudio
 | |
|     development environment. To simplify this process, a
 | |
|     VisualStudio workspace, Apache.dsw, is provided. This workspace
 | |
|     exposes the entire list of working .dsp projects that are
 | |
|     required for the complete Apache binary release. It includes
 | |
|     dependencies between the projects to assure that they are built
 | |
|     in the appropriate order.</p>
 | |
| 
 | |
|     <p>Open the Apache.dsw workspace, and choose InstallBin
 | |
|     (Release or Debug build, as desired) as the Active Project.
 | |
|     InstallBin causes all related project to be build, and then
 | |
|     invokes Makefile.win to move the compiled executables and dlls.
 | |
|     You may personalize the INSTDIR= choice by changing
 | |
|     InstallBin's Settings, General tab, Build command line entry.
 | |
|     INSTDIR defaults to the /Apache2 directory.</p>
 | |
| 
 | |
|     <p>The .dsp project files are distributed in Visual C++ 6.0
 | |
|     format. Visual C++ 5.0 (97) will recognize them with the single
 | |
|     exception of the /ZI flag (which corresponds to the VC 5.0 /Zi
 | |
|     flag for debugging symbols.) To quickly prepare the .dsp files
 | |
|     for the Visual Studio 5.0 (97), you can run this command from
 | |
|     the top-level httpd-2.0 directory:</p>
 | |
| <pre>
 | |
|      perl srclib\apr\build\cvtdsp.pl -5
 | |
| </pre>
 | |
|     You must type this command from the <em>top level</em>
 | |
|     directory of the httpd source tree. Every VC6 .dsp project file
 | |
|     within the current directory and below will be listed as it is
 | |
|     converted. If you contribute back a patch that revises project
 | |
|     files, please convert them back with the the -6 option instead
 | |
|     of -5, which returns the project files to Visual Studio 6.0
 | |
|     format.<br />
 | |
|      <br />
 | |
|      
 | |
| 
 | |
|     <h3><a id="projectcomponents" name="projectcomponents">Project
 | |
|     Components</a></h3>
 | |
| 
 | |
|     <p>The Apache.dsw workspace and makefile.win nmake script both
 | |
|     build the .dsp projects of the Apache server in the following
 | |
|     sequence:</p>
 | |
| 
 | |
|     <ol>
 | |
|       <li><code>srclib\apr\apr.dsp</code></li>
 | |
| 
 | |
|       <li><code>srclib\apr\libapr.dsp</code></li>
 | |
| 
 | |
|       <li><code>srclib\apr-util\uri\gen_uri_delims.dsp</code></li>
 | |
| 
 | |
|       <li><code>srclib\apr-util\aprutil.dsp</code></li>
 | |
| 
 | |
|       <li><code>srclib\apr-util\libaprutil.dsp</code></li>
 | |
| 
 | |
|       <li><code>srclib\pcre\dftables.dsp</code></li>
 | |
| 
 | |
|       <li><code>srclib\pcre\pcre.dsp</code></li>
 | |
| 
 | |
|       <li><code>srclib\pcre\pcreposix.dsp</code></li>
 | |
| 
 | |
|       <li><code>srclib\expat-lite\libexpat.dsp</code></li>
 | |
| 
 | |
|       <li><code>server\gen_test_char.dsp</code></li>
 | |
| 
 | |
|       <li><code>libhttpd.dsp</code></li>
 | |
| 
 | |
|       <li><code>Apache.dsp</code></li>
 | |
|     </ol>
 | |
| 
 | |
|     <p>In addition, the <code>os\win32</code> subdirectory contains
 | |
|     project files for the optional modules.</p>
 | |
| 
 | |
|     <ol>
 | |
|       <li><code>modules\aaa\mod_auth_dbm.dsp</code></li>
 | |
| 
 | |
|       <li><code>modules\aaa\mod_auth_anon.dsp</code></li>
 | |
| 
 | |
|       <li><code>modules\aaa\mod_auth_digest.dsp</code></li>
 | |
| 
 | |
|       <li><code>modules\cache\mod_file_cache.dsp</code></li>
 | |
| 
 | |
|       <li><code>modules\dav\fs\mod_dav_fs.dsp</code></li>
 | |
| 
 | |
|       <li><code>modules\dav\main\mod_dav.dsp</code></li>
 | |
| 
 | |
|       <li><code>modules\generators\mod_info.dsp</code></li>
 | |
| 
 | |
|       <li><code>modules\generators\mod_status.dsp</code></li>
 | |
| 
 | |
|       <li><code>modules\mappers\mod_rewrite.dsp</code></li>
 | |
| 
 | |
|       <li><code>modules\mappers\mod_speling.dsp</code></li>
 | |
| 
 | |
|       <li><code>modules\metadata\mod_usertrack.dsp</code></li>
 | |
| 
 | |
|       <li><code>modules\metadata\mod_cern_meta.dsp</code></li>
 | |
| 
 | |
|       <li><code>modules\metadata\mod_headers.dsp</code></li>
 | |
| 
 | |
|       <li><code>modules\metadata\mod_expires.dsp</code></li>
 | |
| 
 | |
|       <li><code>modules\ssl\mod_ssl.dsp</code></li>
 | |
| 
 | |
|       <li><code>modules\tls\mod_tls.dsp</code></li>
 | |
|     </ol>
 | |
| 
 | |
|     <p>The <code>support\</code> folder contains project files for
 | |
|     additional programs that are not part of the Apache runtime,
 | |
|     but are used by the administrator to test Apache and maintain
 | |
|     password and log files.</p>
 | |
| 
 | |
|     <ol>
 | |
|       <li><code>support\ab.dsp</code></li>
 | |
| 
 | |
|       <li><code>support\htdigest.dsp</code></li>
 | |
| 
 | |
|       <li><code>support\htpasswd.dsp</code></li>
 | |
| 
 | |
|       <li><code>support\logresolve.dsp</code></li>
 | |
| 
 | |
|       <li><code>support\rotatelogs.dsp</code></li>
 | |
| 
 | |
|       <li><code>support\win32\wintty.dsp</code></li>
 | |
|     </ol>
 | |
| 
 | |
|     <p>Once Apache has been compiled, it needs to be installed in
 | |
|     its server root directory. The default is the
 | |
|     <code>\Apache2</code> directory, of the same drive.</p>
 | |
| 
 | |
|     <p>To build and install all the files into the desired folder
 | |
|     <em>dir</em> automatically, use one the following nmake
 | |
|     commands:</p>
 | |
| <pre>
 | |
|     nmake /f Makefile.win installr INSTDIR=<em>dir</em>
 | |
| 
 | |
|     nmake /f Makefile.win installd INSTDIR=<em>dir</em>
 | |
| </pre>
 | |
|     The <em>dir</em> argument to INSTDIR gives the installation
 | |
|     directory; it can be omitted if Apache is to be installed into
 | |
|     <samp>\Apache2</samp>.<br />
 | |
|      <br />
 | |
|      
 | |
| 
 | |
|     <p>This will install the following:</p>
 | |
| 
 | |
|     <ul>
 | |
|       <li><code><em>dir</em>\bin\Apache.exe</code> - Apache
 | |
|       executable</li>
 | |
| 
 | |
|       <li><code><em>dir</em>\bin\htdigest.exe</code> - Digest auth
 | |
|       password file utility</li>
 | |
| 
 | |
|       <li><code><em>dir</em>\bin\htpasswd.exe</code> - Basic auth
 | |
|       password file utility</li>
 | |
| 
 | |
|       <li><code><em>dir</em>\bin\logresolve.exe</code> - Log file
 | |
|       dns name lookup utility</li>
 | |
| 
 | |
|       <li><code><em>dir</em>\bin\rotatelogs.exe</code> - Log file
 | |
|       cycling utility</li>
 | |
| 
 | |
|       <li><code><em>dir</em>\bin\wintty.exe</code> - Console window
 | |
|       utility</li>
 | |
| 
 | |
|       <li><code><em>dir</em>\bin\libapr.dll</code> - Apache
 | |
|       Portable Runtime shared library</li>
 | |
| 
 | |
|       <li><code><em>dir</em>\bin\libaprutil.dll</code> - Apache
 | |
|       Utility Runtime shared library</li>
 | |
| 
 | |
|       <li><code><em>dir</em>\bin\libhttpd.dll</code> - Apache Core
 | |
|       library</li>
 | |
| 
 | |
|       <li><code><em>dir</em>\modules\mod_*.so</code> - Loadable
 | |
|       Apache modules</li>
 | |
| 
 | |
|       <li><code><em>dir</em>\conf</code> - Configuration
 | |
|       directory</li>
 | |
| 
 | |
|       <li><code><em>dir</em>\logs</code> - Empty logging
 | |
|       directory</li>
 | |
| 
 | |
|       <li><code><em>dir</em>\include</code> - C language header
 | |
|       files</li>
 | |
| 
 | |
|       <li><code><em>dir</em>\lib</code> - Static Link library
 | |
|       files</li>
 | |
| 
 | |
|       <li><code><em>dir</em>\libexec</code> - DLL link library
 | |
|       files</li>
 | |
|     </ul>
 | |
| 
 | |
|     <p><strong>Warning about building Apache from the development
 | |
|     tree</strong></p>
 | |
| 
 | |
|     <p>Only the .dsp files are maintained between release builds.
 | |
|     The .mak files are NOT regenerated, due to the tremendous waste
 | |
|     of reviewer's time. Therefore, you cannot rely on the NMAKE
 | |
|     commands above to build revised .dsp project files unless you
 | |
|     then export all .mak files yourself from the project. This is
 | |
|     unnecessary if you build from within the Microsoft
 | |
|     DeveloperStudio environment.</p>
 | |
|     <!--#include virtual="footer.html" -->
 | |
|   </body>
 | |
| </html>
 | |
| 
 |