|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
|
|
Packit |
90a5c9 |
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
Packit |
90a5c9 |
This file is generated from xml source: DO NOT EDIT
|
|
Packit |
90a5c9 |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
Packit |
90a5c9 |
-->
|
|
Packit |
90a5c9 |
<title>Compiling Apache for Microsoft Windows - Apache HTTP Server Version 2.4</title>
|
|
Packit |
90a5c9 |
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
|
|
Packit |
90a5c9 |
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
|
|
Packit |
90a5c9 |
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
|
|
Packit |
90a5c9 |
<script src="../style/scripts/prettify.min.js" type="text/javascript">
|
|
Packit |
90a5c9 |
</script>
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
|
|
Packit |
90a5c9 |
<body id="manual-page">
|
|
Packit |
90a5c9 |
Modules | Directives | FAQ | Glossary | Sitemap
|
|
Packit |
90a5c9 |
Apache HTTP Server Version 2.4
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Apache > HTTP Server > Documentation > Version 2.4 > Platform Specific NotesCompiling Apache for Microsoft Windows
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Available Languages: en |
|
|
Packit |
90a5c9 |
fr |
|
|
Packit |
90a5c9 |
ko
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
There are many important points to consider before you begin compiling
|
|
Packit |
90a5c9 |
Apache HTTP Server (httpd). See Using Apache HTTP
|
|
Packit |
90a5c9 |
Server on Microsoft Windows before you begin.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
httpd can be built on Windows using a cmake-based build system or with
|
|
Packit |
90a5c9 |
Visual Studio project files maintained by httpd developers. The cmake-based
|
|
Packit |
90a5c9 |
build system directly supports more versions of Visual Studio but currently
|
|
Packit |
90a5c9 |
has considerable functional limitations.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Building httpd with cmake
|
|
Packit |
90a5c9 |
See also
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Compiling Apache requires the following environment to be
|
|
Packit |
90a5c9 |
properly installed:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Disk Space
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Make sure you have at least 200 MB of free disk space
|
|
Packit |
90a5c9 |
available. After installation Apache requires approximately
|
|
Packit |
90a5c9 |
80 MB of disk space, plus space for log and cache files,
|
|
Packit |
90a5c9 |
which can grow rapidly. The actual disk space requirements
|
|
Packit |
90a5c9 |
will vary considerably based on your chosen configuration and
|
|
Packit |
90a5c9 |
any third-party modules or libraries, especially when OpenSSL
|
|
Packit |
90a5c9 |
is also built. Because many files are text and very easily
|
|
Packit |
90a5c9 |
compressed, NTFS filesystem compression cuts these requirements
|
|
Packit |
90a5c9 |
in half.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Appropriate Patches
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
The httpd binary is built with the help of several patches to
|
|
Packit |
90a5c9 |
third party packages, which ensure the released code is buildable
|
|
Packit |
90a5c9 |
and debuggable. These patches are available and distributed from http://www.apache.org/dist/httpd/binaries/win32/patches_applied/
|
|
Packit |
90a5c9 |
and are recommended to be applied to obtain identical results as the
|
|
Packit |
90a5c9 |
"official" ASF distributed binaries.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Microsoft Visual C++ 6.0 (Visual Studio 97) or later.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Apache can be built using the command line tools, or from
|
|
Packit |
90a5c9 |
within the Visual Studio IDE Workbench. The command line
|
|
Packit |
90a5c9 |
build requires the environment to reflect the PATH ,
|
|
Packit |
90a5c9 |
INCLUDE , LIB and other variables
|
|
Packit |
90a5c9 |
that can be configured with the vcvars32.bat script.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
You may want the Visual Studio Processor Pack for your older
|
|
Packit |
90a5c9 |
version of Visual Studio, or a full (not Express) version of newer
|
|
Packit |
90a5c9 |
Visual Studio editions, for the ml.exe assembler. This will allow
|
|
Packit |
90a5c9 |
you to build OpenSSL, if desired, using the more efficient assembly
|
|
Packit |
90a5c9 |
code implementation.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Only the Microsoft compiler tool chain is actively supported by
|
|
Packit |
90a5c9 |
the active httpd contributors. Although the project regularly accepts
|
|
Packit |
90a5c9 |
patches to ensure MinGW and other alternative builds work and improve
|
|
Packit |
90a5c9 |
upon them, they are not actively maintained and are often broken in
|
|
Packit |
90a5c9 |
the course of normal development.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Updated Microsoft Windows Platform SDK, February 2003 or later.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
An appropriate Windows Platform SDK is included by default in the
|
|
Packit |
90a5c9 |
full (not express/lite) versions of Visual C++ 7.1 (Visual Studio 2002)
|
|
Packit |
90a5c9 |
and later, these users can ignore these steps unless explicitly choosing
|
|
Packit |
90a5c9 |
a newer or different version of the Platform SDK.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
To use Visual C++ 6.0 or 7.0 (Studio 2000 .NET), the Platform SDK
|
|
Packit |
90a5c9 |
environment must be prepared using the setenv.bat
|
|
Packit |
90a5c9 |
script (installed by the Platform SDK) before starting the command
|
|
Packit |
90a5c9 |
line build or launching the msdev/devenv GUI environment. Installing
|
|
Packit |
90a5c9 |
the Platform SDK for Visual Studio Express versions (2003 and later)
|
|
Packit |
90a5c9 |
should adjust the default environment appropriately.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
"c:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32"
|
|
Packit |
90a5c9 |
"c:\Program Files\Platform SDK\setenv.bat"
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Perl and awk
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Several steps recommended here require a perl interpreter during
|
|
Packit |
90a5c9 |
the build preparation process, but it is otherwise not required.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
To install Apache within the build system, several files are
|
|
Packit |
90a5c9 |
modified using the awk.exe utility. awk was chosen since
|
|
Packit |
90a5c9 |
it is a very small download (compared with Perl or WSH/VB) and
|
|
Packit |
90a5c9 |
accomplishes the task of modifying configuration files upon
|
|
Packit |
90a5c9 |
installation. Brian Kernighan's
|
|
Packit |
90a5c9 |
http://www.cs.princeton.edu/~bwk/btl.mirror/
|
|
Packit |
90a5c9 |
site has a compiled native Win32 binary,
|
|
Packit |
90a5c9 |
http://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe which
|
|
Packit |
90a5c9 |
you must save with the name awk.exe (rather than
|
|
Packit |
90a5c9 |
awk95.exe ).
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
If awk.exe is not found, Makefile.win's install target
|
|
Packit |
90a5c9 |
will not perform substitutions in the installed .conf files.
|
|
Packit |
90a5c9 |
You must manually modify the installed .conf files to allow
|
|
Packit |
90a5c9 |
the server to start. Search and replace all "@token@" tags
|
|
Packit |
90a5c9 |
as appropriate.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
The Visual Studio IDE will only find awk.exe
|
|
Packit |
90a5c9 |
from the PATH, or executable path specified in the menu option
|
|
Packit |
90a5c9 |
Tools -> Options -> (Projects ->) Directories. Ensure
|
|
Packit |
90a5c9 |
awk.exe is in your system path.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Also note that if you are using Cygwin tools
|
|
Packit |
90a5c9 |
(http://www.cygwin.com/)
|
|
Packit |
90a5c9 |
the awk utility is named gawk.exe and that the file
|
|
Packit |
90a5c9 |
awk.exe is really a symlink to the gawk.exe
|
|
Packit |
90a5c9 |
file. The Windows command shell does not recognize symlinks, and
|
|
Packit |
90a5c9 |
because of this building InstallBin will fail. A workaround is
|
|
Packit |
90a5c9 |
to delete awk.exe from the cygwin installation and
|
|
Packit |
90a5c9 |
copy gawk.exe to awk.exe . Also note the
|
|
Packit |
90a5c9 |
cygwin/mingw ports of gawk 3.0.x were buggy, please upgrade to 3.1.x
|
|
Packit |
90a5c9 |
before attempting to use any gawk port.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
[Optional] zlib library (for mod_deflate )
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Zlib must be installed into a srclib subdirectory named
|
|
Packit |
90a5c9 |
zlib . This must be built in-place. Zlib can be obtained
|
|
Packit |
90a5c9 |
from http://www.zlib.net/ -- the
|
|
Packit |
90a5c9 |
mod_deflate is confirmed to work correctly with
|
|
Packit |
90a5c9 |
version 1.2.3.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
nmake -f win32\Makefile.msc
|
|
Packit |
90a5c9 |
nmake -f win32\Makefile.msc test
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
[Optional] OpenSSL libraries (for mod_ssl
|
|
Packit |
90a5c9 |
and ab.exe with ssl support)
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
The OpenSSL library is cryptographic software. The country
|
|
Packit |
90a5c9 |
in which you currently reside may have restrictions on the import,
|
|
Packit |
90a5c9 |
possession, use, and/or re-export to another country, of encryption
|
|
Packit |
90a5c9 |
software. BEFORE using any encryption software, please check your
|
|
Packit |
90a5c9 |
country's laws, regulations and policies concerning the import,
|
|
Packit |
90a5c9 |
possession, or use, and re-export of encryption software, to see
|
|
Packit |
90a5c9 |
if this is permitted. See
|
|
Packit |
90a5c9 |
http://www.wassenaar.org/
|
|
Packit |
90a5c9 |
for more information.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Configuring and building OpenSSL requires perl to be installed.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
OpenSSL must be installed into a srclib subdirectory
|
|
Packit |
90a5c9 |
named openssl , obtained from
|
|
Packit |
90a5c9 |
http://www.openssl.org/source/, in order to compile
|
|
Packit |
90a5c9 |
mod_ssl or the abs.exe project, which
|
|
Packit |
90a5c9 |
is ab.c with SSL support enabled. To prepare OpenSSL to be linked
|
|
Packit |
90a5c9 |
to Apache mod_ssl or abs.exe, and disable patent encumbered features
|
|
Packit |
90a5c9 |
in OpenSSL, you might use the following build commands:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
perl Configure no-rc5 no-idea enable-mdc2 enable-zlib VC-WIN32
|
|
Packit |
90a5c9 |
-Ipath/to/srclib/zlib -Lpath/to/srclib/zlib
|
|
Packit |
90a5c9 |
ms\do_masm.bat
|
|
Packit |
90a5c9 |
nmake -f ms\ntdll.mak
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
It is not advisable to use zlib-dynamic, as that transfers
|
|
Packit |
90a5c9 |
the cost of deflating SSL streams to the first request which must
|
|
Packit |
90a5c9 |
load the zlib dll. Note the suggested patch enables the -L flag to
|
|
Packit |
90a5c9 |
work with windows builds, corrects the name of zdll.lib and ensures
|
|
Packit |
90a5c9 |
.pdb files are generated for troubleshooting. If the assembler is
|
|
Packit |
90a5c9 |
not installed, you would add no-asm above and use ms\do_ms.bat
|
|
Packit |
90a5c9 |
instead of the ms\do_masm.bat script.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
[Optional] Database libraries (for mod_dbd
|
|
Packit |
90a5c9 |
and mod_authn_dbm )
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
The apr-util library exposes dbm (keyed database) and dbd (query
|
|
Packit |
90a5c9 |
oriented database) client functionality to the httpd server and its
|
|
Packit |
90a5c9 |
modules, such as authentication and authorization. The sdbm dbm and
|
|
Packit |
90a5c9 |
odbc dbd providers are compiled unconditionally.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
The dbd support includes the Oracle instantclient package, MySQL,
|
|
Packit |
90a5c9 |
PostgreSQL and sqlite. To build these all, for example, set up the
|
|
Packit |
90a5c9 |
LIB to include the library path, INCLUDE to include the headers path,
|
|
Packit |
90a5c9 |
and PATH to include the dll bin path of all four SDK's, and set the
|
|
Packit |
90a5c9 |
DBD_LIST environment variable to inform the build which client driver
|
|
Packit |
90a5c9 |
SDKs are installed correctly, e.g.;
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
set DBD_LIST=sqlite3 pgsql oracle mysql
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Similarly, the dbm support can be extended with DBM_LIST to
|
|
Packit |
90a5c9 |
build a Berkeley DB provider (db) and/or gdbm provider, by similarly
|
|
Packit |
90a5c9 |
configuring LIB, INCLUDE and PATH first to ensure the client library
|
|
Packit |
90a5c9 |
libs and headers are available.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
set DBM_LIST=db gdbm
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Depending on the choice of database distributions, it may be
|
|
Packit |
90a5c9 |
necessary to change the actual link target name (e.g. gdbm.lib vs.
|
|
Packit |
90a5c9 |
libgdb.lib) that are listed in the corresponding .dsp/.mak files
|
|
Packit |
90a5c9 |
within the directories srclib\apr-util\dbd or ...\dbm.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
See the README-win32.txt file for more hints on obtaining the
|
|
Packit |
90a5c9 |
various database driver SDKs.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
The policy of the Apache HTTP Server project is to only release Unix sources.
|
|
Packit |
90a5c9 |
Windows source packages made available for download have been supplied by
|
|
Packit |
90a5c9 |
volunteers and may not be available for every release. You can still build
|
|
Packit |
90a5c9 |
the server on Windows from the Unix source tarball with just a few additional
|
|
Packit |
90a5c9 |
steps.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Download and unpack the Unix source tarball for the latest version.
|
|
Packit |
90a5c9 |
Download and unpack the Unix source tarball for latest version of
|
|
Packit |
90a5c9 |
APR, AR-Util and APR-Iconv, place these sources in directories httpd-2.x.x\srclib\apr, httpd-2.x.x\srclib\apr-util and httpd-2.x.x\srclib\apr-iconv
|
|
Packit |
90a5c9 |
Open a Command Prompt and CD to the httpd-2.x.x folder
|
|
Packit |
90a5c9 |
Run the line endings conversion utility at the prompt;
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
perl srclib\apr\build\lineends.pl
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
You can now build the server with the Visual Studio development
|
|
Packit |
90a5c9 |
environment using the IDE. Command-Line builds of the server are not
|
|
Packit |
90a5c9 |
possible from Unix sources unless you export .mak files as explained
|
|
Packit |
90a5c9 |
below.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Makefile.win is the top level Apache makefile.
|
|
Packit |
90a5c9 |
To compile Apache on Windows, simply use one of the following commands
|
|
Packit |
90a5c9 |
to build the release or debug flavor:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
nmake /f Makefile.win _apacher
|
|
Packit |
90a5c9 |
nmake /f Makefile.win _apached
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Either command will compile Apache. The latter will disable
|
|
Packit |
90a5c9 |
optimization of the resulting files, making it easier to single
|
|
Packit |
90a5c9 |
step the code to find bugs and track down problems.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
You can add your apr-util dbd and dbm provider choices with the
|
|
Packit |
90a5c9 |
additional make (environment) variables DBD_LIST and DBM_LIST,
|
|
Packit |
90a5c9 |
see the comments about [Optional] Database libraries, above.
|
|
Packit |
90a5c9 |
Review the initial comments in Makefile.win for additional options
|
|
Packit |
90a5c9 |
that can be provided when invoking the build.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Apache can also be compiled using VC++'s Visual Studio
|
|
Packit |
90a5c9 |
development environment. To simplify this process, a
|
|
Packit |
90a5c9 |
Visual Studio workspace, Apache.dsw , is provided.
|
|
Packit |
90a5c9 |
This workspace exposes the entire list of working .dsp
|
|
Packit |
90a5c9 |
projects that are required for the complete Apache binary release.
|
|
Packit |
90a5c9 |
It includes dependencies between the projects to assure that they
|
|
Packit |
90a5c9 |
are built in the appropriate order.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Open the Apache.dsw workspace, and select
|
|
Packit |
90a5c9 |
InstallBin (Release or Debug build,
|
|
Packit |
90a5c9 |
as desired) as the Active Project. InstallBin causes all
|
|
Packit |
90a5c9 |
related project to be built, and then invokes Makefile.win to
|
|
Packit |
90a5c9 |
move the compiled executables and dlls. You may personalize the
|
|
Packit |
90a5c9 |
INSTDIR= choice by changing InstallBin 's Settings,
|
|
Packit |
90a5c9 |
General tab, Build command line entry. INSTDIR defaults to the
|
|
Packit |
90a5c9 |
/Apache2 directory. If you only want a test compile (without
|
|
Packit |
90a5c9 |
installing) you may build the BuildBin project instead.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
The .dsp project files are distributed in Visual Studio 6.0
|
|
Packit |
90a5c9 |
(98) format. Visual C++ 5.0 (97) will recognize them. Visual Studio
|
|
Packit |
90a5c9 |
2002 (.NET) and later users must convert Apache.dsw plus
|
|
Packit |
90a5c9 |
the .dsp files into an Apache.sln plus
|
|
Packit |
90a5c9 |
.msproj files. Be sure you reconvert the .msproj
|
|
Packit |
90a5c9 |
file again if its source .dsp file changes! This is really
|
|
Packit |
90a5c9 |
trivial, just open Apache.dsw in the VC++ 7.0 IDE once again
|
|
Packit |
90a5c9 |
and reconvert.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
There is a flaw in the .vcproj conversion of .dsp files. devenv.exe
|
|
Packit |
90a5c9 |
will mis-parse the /D flag for RC flags containing long quoted /D'efines
|
|
Packit |
90a5c9 |
which contain spaces. The command:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
perl srclib\apr\build\cvtdsp.pl -2005
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
will convert the /D flags for RC flags to use an alternate, parseable
|
|
Packit |
90a5c9 |
syntax; unfortunately this syntax isn't supported by Visual Studio 97
|
|
Packit |
90a5c9 |
or its exported .mak files. These /D flags are used to pass the long
|
|
Packit |
90a5c9 |
description of the mod_apachemodule.so files to the shared .rc resource
|
|
Packit |
90a5c9 |
version-identifier build.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Building with OpenSSL 1.1.0 and up
|
|
Packit |
90a5c9 |
Due to difference in the build structure of OpenSSL begining with version
|
|
Packit |
90a5c9 |
1.1.0 you will need to convert the dsp files affected with cvtdsp.pl from
|
|
Packit |
90a5c9 |
APR 1.6 or greater. The command:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
perl srclib\apr\build\cvtdsp.pl -ossl11
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Visual Studio 2002 (.NET) and later users should also use the Build
|
|
Packit |
90a5c9 |
menu, Configuration Manager dialog to uncheck both the Debug
|
|
Packit |
90a5c9 |
and Release Solution modules abs ,
|
|
Packit |
90a5c9 |
mod_deflate and mod_ssl components, as
|
|
Packit |
90a5c9 |
well as every component starting with apr_db* . These modules
|
|
Packit |
90a5c9 |
are built by invoking nmake , or the IDE directly with the
|
|
Packit |
90a5c9 |
BinBuild target, which builds those modules conditionally
|
|
Packit |
90a5c9 |
if the srclib directories openssl and/or
|
|
Packit |
90a5c9 |
zlib exist, and based on the setting of DBD_LIST
|
|
Packit |
90a5c9 |
and DBM_LIST environment variables.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Exported .mak files pose a greater hassle, but they are
|
|
Packit |
90a5c9 |
required for Visual C++ 5.0 users to build mod_ssl ,
|
|
Packit |
90a5c9 |
abs (ab with SSL support) and/or
|
|
Packit |
90a5c9 |
mod_deflate . The .mak files also support a broader
|
|
Packit |
90a5c9 |
range of C++ tool chain distributions, such as Visual Studio Express.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
You must first build all projects in order to create all dynamic
|
|
Packit |
90a5c9 |
auto-generated targets, so that dependencies can be parsed correctly.
|
|
Packit |
90a5c9 |
Build the entire project from within the Visual Studio 6.0 (98) IDE,
|
|
Packit |
90a5c9 |
using the BuildAll target, then use the Project Menu Export
|
|
Packit |
90a5c9 |
for all makefiles (checking on "with dependencies".) Run the following
|
|
Packit |
90a5c9 |
command to correct absolute paths into relative paths so they will build
|
|
Packit |
90a5c9 |
anywhere:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
perl srclib\apr\build\fixwin32mak.pl
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
You must type this command from the top level
|
|
Packit |
90a5c9 |
directory of the httpd source tree. Every
|
|
Packit |
90a5c9 |
.mak and .dep project file within
|
|
Packit |
90a5c9 |
the current directory and below will be corrected, and the
|
|
Packit |
90a5c9 |
timestamps adjusted to reflect the .dsp .
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Always review the generated .mak and .dep
|
|
Packit |
90a5c9 |
files for Platform SDK or other local, machine specific file paths.
|
|
Packit |
90a5c9 |
The DevStudio\Common\MSDev98\bin\ (VC6) directory contains
|
|
Packit |
90a5c9 |
a sysincl.dat file, which lists all exceptions. Update
|
|
Packit |
90a5c9 |
this file (including both forward and backslashed paths, such as both
|
|
Packit |
90a5c9 |
sys/time.h and sys\time.h ) to ignore such
|
|
Packit |
90a5c9 |
newer dependencies. Including local-install paths in a distributed
|
|
Packit |
90a5c9 |
.mak file will cause the build to fail completely.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
If you contribute back a patch that revises project files, we
|
|
Packit |
90a5c9 |
must commit project files in Visual Studio 6.0 format. Changes
|
|
Packit |
90a5c9 |
should be simple, with minimal compilation and linkage flags that
|
|
Packit |
90a5c9 |
can be recognized by all Visual Studio environments.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Once Apache has been compiled, it needs to be installed in
|
|
Packit |
90a5c9 |
its server root directory. The default is the
|
|
Packit |
90a5c9 |
\Apache2 directory, of the same drive.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
To build and install all the files into the desired folder
|
|
Packit |
90a5c9 |
dir automatically, use one of the following
|
|
Packit |
90a5c9 |
nmake commands:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
nmake /f Makefile.win installr INSTDIR=dir
|
|
Packit |
90a5c9 |
nmake /f Makefile.win installd INSTDIR=dir
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
The dir argument to INSTDIR provides
|
|
Packit |
90a5c9 |
the installation directory; it can be omitted if Apache is
|
|
Packit |
90a5c9 |
to be installed into \Apache22 (of the current
|
|
Packit |
90a5c9 |
drive).
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Note only the .dsp files are maintained between release
|
|
Packit |
90a5c9 |
builds. The .mak files are NOT regenerated, due to the tremendous
|
|
Packit |
90a5c9 |
waste of reviewer's time. Therefore, you cannot rely on the NMAKE
|
|
Packit |
90a5c9 |
commands above to build revised .dsp project files unless you
|
|
Packit |
90a5c9 |
then export all .mak files yourself from the project. This is
|
|
Packit |
90a5c9 |
unnecessary if you build from within the Microsoft
|
|
Packit |
90a5c9 |
Developer Studio environment.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
The primary documentation for this build mechanism is in the
|
|
Packit |
90a5c9 |
README.cmake file in the source distribution. Refer to that file
|
|
Packit |
90a5c9 |
for detailed instructions.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Building httpd with cmake requires building APR and APR-util separately.
|
|
Packit |
90a5c9 |
Refer to their README.cmake files for instructions.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
The primary limitations of the cmake-based build are inherited from the APR-util
|
|
Packit |
90a5c9 |
project, and are listed below because of their impact on httpd:
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
No cmake build for the APR-iconv subproject is available, and the
|
|
Packit |
90a5c9 |
APR-util cmake build cannot consume an existing APR-iconv build. Thus,
|
|
Packit |
90a5c9 |
mod_charset_lite and possibly some third-party modules
|
|
Packit |
90a5c9 |
cannot be used.
|
|
Packit |
90a5c9 |
The cmake build for the APR-util subproject does not support most of the
|
|
Packit |
90a5c9 |
optional DBM and DBD libraries supported by the included Visual Studio
|
|
Packit |
90a5c9 |
project files. This limits the database backends supported by a number of
|
|
Packit |
90a5c9 |
bundled and third-party modules.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
Available Languages: en |
|
|
Packit |
90a5c9 |
fr |
|
|
Packit |
90a5c9 |
ko
|
|
Packit |
90a5c9 |
Notice:This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.
|
|
Packit |
90a5c9 |
<script type="text/javascript">
|
|
Packit |
90a5c9 |
var comments_shortname = 'httpd';
|
|
Packit |
90a5c9 |
var comments_identifier = 'http://httpd.apache.org/docs/2.4/platform/win_compiling.html';
|
|
Packit |
90a5c9 |
(function(w, d) {
|
|
Packit |
90a5c9 |
if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
|
|
Packit |
90a5c9 |
d.write('
|
|
Packit |
90a5c9 |
var s = d.createElement('script');
|
|
Packit |
90a5c9 |
s.type = 'text/javascript';
|
|
Packit |
90a5c9 |
s.async = true;
|
|
Packit |
90a5c9 |
s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
|
|
Packit |
90a5c9 |
(d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
else {
|
|
Packit |
90a5c9 |
d.write('
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
})(window, document);
|
|
Packit |
90a5c9 |
//--></script>
|
|
Packit |
90a5c9 |
Copyright 2018 The Apache Software Foundation. Licensed under the Apache License, Version 2.0.
|
|
Packit |
90a5c9 |
Modules | Directives | FAQ | Glossary | Sitemap <script type="text/javascript">
|
|
Packit |
90a5c9 |
if (typeof(prettyPrint) !== 'undefined') {
|
|
Packit |
90a5c9 |
prettyPrint();
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
//--></script>
|
|
Packit |
90a5c9 |
</body></html>
|