mirror of
https://github.com/apache/httpd.git
synced 2025-05-17 15:21:13 +03:00
Obtained from: Submitted by: Reviewed by: Just a bit of cleanup to the 2.0 language before I crash here. This is exactly the reason the mpm service update isn't going into the alpha - big chunks of this must be rewritten first. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85391 13f79535-47bb-0310-9956-ffa450edef68
183 lines
7.5 KiB
HTML
183 lines
7.5 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<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>
|
|
|
|
<P>Compiling Apache requires Microsoft Visual C++ 5.0 (or later) to be
|
|
properly installed. It is easiest to compile with the command-line tools
|
|
(nmake, <EM>etc.</EM>..). Consult the VC++ manual to determine how to install
|
|
them. Be especially aware that the vcvars32.bat file from the
|
|
Program Files/DevStudio/VC/bin folder may be required to prepare the
|
|
command-line environment for command-line builds!</P>
|
|
|
|
<P>First, unpack the Apache distribution into an appropriate
|
|
directory. Open a command-line prompt, and change to the
|
|
<CODE>src</CODE> subdirectory of the Apache distribution.</P>
|
|
|
|
<P>The master Apache makefile instructions are contained in the
|
|
<CODE>Makefile.win</CODE> file. To compile Apache on Windows, simply
|
|
use one of the following commands:<P>
|
|
<UL>
|
|
<LI><CODE>nmake /f Makefile.win _apacher</CODE> (release build)
|
|
<LI><CODE>nmake /f Makefile.win _apached</CODE> (debug build)
|
|
</UL>
|
|
|
|
<P>These will both compile Apache. The latter will include debugging
|
|
information in the resulting files, making it easier to find bugs and
|
|
track down problems.</P>
|
|
|
|
<P>Apache can also be compiled using VC++'s Visual Studio development
|
|
environment. To simplify this process, a Visual Studio workspace,
|
|
Apache.dsw, is provided in the src folder. 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><STRONG>Notice: The Apache/VisualStudio project files are distributed
|
|
in VisualStudio 6.0 (98) format.</STRONG> In fact you may build with
|
|
VisualStudio 5.0 (97) but you must first use the perl script command:</P>
|
|
|
|
<PRE>
|
|
cd src\helpers
|
|
cvstodsp5.pl
|
|
</PRE>
|
|
|
|
<P>Without running the script you will be able to load and build Apache,
|
|
however VisualStudio 97 in particular will not recognize the /ZI flag
|
|
to the C compiler for the debugging mode. This script toggles the
|
|
new /ZI flag back to /Zi for Debug builds, among other adjustments.
|
|
The converse script in <CODE>src/helpers/dsp5tocvs.pl</CODE> will
|
|
reverse the adjustments, and we ask you to do so before submitting
|
|
patches against any .dsp project files.</P>
|
|
|
|
<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>lib\apr\aprlib.dsp</CODE>
|
|
<LI><CODE>lib\apr\aprlibdll.dsp <EM>requires aprlib</EM></CODE>
|
|
<LI><CODE>lib\pcre\dftables.dsp</CODE>
|
|
<LI><CODE>lib\pcre\pcre.dsp <EM>requires dftables</EM></CODE>
|
|
<LI><CODE>lib\pcre\pcreposix.dsp <EM>requires dftables and pcre</EM></CODE>
|
|
<LI><CODE>lib\expat-lite\xmltok.dsp</CODE>
|
|
<LI><CODE>lib\expat-lite\xmlparse.dsp <EM>requires xmltok</EM></CODE>
|
|
<LI><CODE>main\gen_uri_delims.dsp</CODE>
|
|
<LI><CODE>main\gen_test_char.dsp</CODE>
|
|
<LI><CODE>ApacheCore.dsp <EM>requires all of the above</EM></CODE>
|
|
<LI><CODE>Apache.dsp <EM>requires ApacheCore and aprlibdll</EM></CODE>
|
|
</OL>
|
|
|
|
In addition, the <CODE>os\win32</CODE> subdirectory contains
|
|
project files for the optional modules.
|
|
|
|
<OL>
|
|
<LI><CODE>os\win32\ApacheModuleAuthAnon.dsp</CODE>
|
|
<LI><CODE>os\win32\ApacheModuleAuthDigest.dsp</CODE>
|
|
<LI><CODE>os\win32\ApacheModuleCERNMeta.dsp</CODE>
|
|
<LI><CODE>os\win32\ApacheModuleExpires.dsp</CODE>
|
|
<LI><CODE>os\win32\ApacheModuleFileCache.dsp</CODE>
|
|
<LI><CODE>os\win32\ApacheModuleHeaders.dsp</CODE>
|
|
<LI><CODE>os\win32\ApacheModuleInfo.dsp</CODE>
|
|
<LI><CODE>os\win32\ApacheModuleRewrite.dsp</CODE>
|
|
<LI><CODE>os\win32\ApacheModuleSpeling.dsp</CODE>
|
|
<LI><CODE>os\win32\ApacheModuleStatus.dsp</CODE>
|
|
<LI><CODE>os\win32\ApacheModuleUserTrack.dsp</CODE>
|
|
<LI><CODE>modules\proxy\ApacheModuleProxy.dsp</CODE>
|
|
</OL>
|
|
|
|
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><CODE>support\htdigest.dsp</CODE>
|
|
<LI><CODE>support\htpasswd.dsp</CODE>
|
|
<LI><CODE>support\logresolve.dsp</CODE>
|
|
<LI><CODE>support\rotatelogs.dsp</CODE>
|
|
</OL>
|
|
|
|
<P>Once Apache has been compiled, it needs to be installed in its server
|
|
root directory. The default is the <CODE>\Apache</CODE>
|
|
directory, on the current hard drive. </P>
|
|
|
|
<P>To build and install all the files into the desired folder <EM>dir</EM>
|
|
automatically, use one the following nmake commands:
|
|
|
|
<UL>
|
|
<LI><CODE>nmake /f Makefile.win installr INSTDIR=<EM>dir</EM></CODE>
|
|
(for release build)
|
|
<LI><CODE>nmake /f Makefile.win installd INSTDIR=<EM>dir</EM></CODE>
|
|
(for debug build)
|
|
</UL>
|
|
|
|
The <EM>dir</EM> argument to INSTDIR gives the installation directory; it
|
|
can be omitted if Apache is to be installed into <SAMP>\Apache</SAMP>.</P>
|
|
|
|
<P>This will install the following:</P>
|
|
|
|
<UL>
|
|
<LI><CODE><EM>dir</EM>\Apache.exe</CODE> - Apache executable
|
|
<LI><CODE><EM>dir</EM>\aprlib.dll</CODE> - Apache Portable Runtime shared library
|
|
<LI><CODE><EM>dir</EM>\ApacheCore.dll</CODE> - Apache Core application
|
|
<LI><CODE><EM>dir</EM>\modules\ApacheModule*.dll</CODE> - Loadable Apache
|
|
modules
|
|
<LI><CODE><EM>dir</EM>\bin\*.exe</CODE> - Administrator support executables
|
|
<LI><CODE><EM>dir</EM>\conf</CODE> - Empty configuration directory
|
|
<LI><CODE><EM>dir</EM>\logs</CODE> - Empty logging directory
|
|
</UL>
|
|
|
|
<P>If you do not have nmake, or wish to install in a different directory,
|
|
be sure to use a similar naming scheme, or use the following shortcut.</P>
|
|
|
|
<P>To simplify the process, dependencies between all projects
|
|
are defined in the Microsoft VisualStudio workspace file:
|
|
|
|
<PRE>
|
|
src/Apache.dsw
|
|
</PRE>
|
|
|
|
<P>This assures that lower-level sources are rebuilt from within
|
|
VisualStudio. The top level project is InstallBin, which invokes
|
|
Makefile.win to move the compiled executables and dlls. You may
|
|
personalize the INSTDIR= setting by changing the Settings for
|
|
InstallBin, Build command line entry under the General tab.
|
|
The default from within the InstallBin.dsp project is one level up
|
|
(..) from the src tree.</P>
|
|
|
|
<P><STRONG>Warning about building Apache from the development tree</STRONG></P>
|
|
|
|
<P>Only the .dsp files are distributed 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 withing the Microsoft DeveloperStudio environment.</P>
|
|
|
|
<P>Before running the server you must fill out the conf directory.
|
|
Copy the *.conf-dist-win from the distribution conf directory
|
|
and rename *.conf. Edit the @@ServerRoot@@ entries to your
|
|
actual server root (for example "C:\apache"). Copy over
|
|
the conf/magic and conf/mime.types files as well.</P>
|
|
|
|
<!--#include virtual="footer.html" -->
|
|
</BODY>
|
|
</HTML>
|