| <!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.</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. Although compiling Apache in this manner is not as |
| simple, it makes it possible to easily modify the Apache source, or |
| to compile Apache if the command-line tools are not installed. |
| Project files (<CODE>.DSP</CODE>) are included for each of the |
| portions of Apache. To build Apache from the these projects files |
| you will need to build the following projects <EM>in this order</EM>: |
| |
| <OL> |
| <LI><CODE>regex\regex.dsp</CODE> |
| <LI><CODE>lib\apr\aprlib.dsp</CODE> |
| <LI><CODE>ap\ap.dsp</CODE> |
| <LI><CODE>main\gen_uri_delims.dsp</CODE> |
| <LI><CODE>main\gen_test_char.dsp</CODE> |
| <LI><CODE>ApacheCore.dsp</CODE> |
| <LI><CODE>Apache.dsp</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\ApacheModuleCERNMeta.dsp</CODE> |
| <LI><CODE>os\win32\ApacheModuleDigest.dsp</CODE> |
| <LI><CODE>os\win32\ApacheModuleExpires.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> |
| </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 maintain password and log files.</P> |
| |
| <OL> |
| <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 dir 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> - Optional Apache |
| modules (7 files) |
| <LI><CODE><EM>dir</EM>\support\*.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> |
| |
| 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 unless you -frequently- 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> |