This section provides information on building dynamic shared object (DSO) modules and dynamic link libraries (DLL).
This information includes identifying compilers, locating build components and understanding build options. Links to
related information appear at the end of this section.
Build Apache modules and third-party modules as dynamic shared object
modules (DSOs), or dynamic link libraries (DLLs), for execution with the IBM
HTTP Server. Apache modules that statically link with Apache
during Apache build and installation, cannot statically link with the IBM HTTP Server. The IBM HTTP Server ships
as an installation image with executables that you cannot rebuild, since the
source does not ship with the installation image. The IBM HTTP Server does ship the
header files necessary to compile and build a DSO,
or DLL that executes as an IBM HTTP Server module.
The product executable, when compared to Apache, contains source code changes. The
majority of these changes exist as hooks to accommodate the Fast Response Cache Accelerator (FRCA),
Secure Sockets Layer (SSL), and the Simple Network Management Protocol (SNMP).
To assist in building DSOs and DLLs, review the general information provided below:
Apache modules and third-party module testing incorporated the
compilers and compiler levels listed below. Other compilers can
work, but testing was limited to these environments:
- AIX - C & C++ Compiler V3.6.6
- HP - HP_UX aC++ Compiler (A.03.xx)
- Linux - gcc-2.95.x
- Solaris - SunWorkShop V5.0
- Windows NT and Windows 2000 - Microsoft Visual V++ 6.0
Locations of the key components for building DSOs and DLLs on the UNIX platform follow:
- Locate the httpd.exp file in the libexec directory.
- Locate the header files in the include directory.
- Locate the APXS script in the bin directory.
Use the ApacheCore.lib file and the header files
installed with the IBM HTTP Server on the Windows NT and Windows 2000 operating systems.
- Locate the ApacheCore.lib file in the src/CoreR directory.
- Locate the header files in the src/os/win32 directory.
You have several options available to you for building dynamic modules:
- Configuration Scripts: Some Apache modules include configuration scripts
with the module source. These configuration scripts make compiling and installing
modules easy and the module writer usually supports them.
Sometimes on the UNIX platform, these configuration scripts have a WITH_APXS option.
If you use this option, ensure you point to the APXS script installed with the IBM HTTP Server, in the
Check the configuration script parameters if you experience problems building or running your DSO-built module.
- The example_module directory:
- UNIX platform: The IBM HTTP Server ships a sample makefile and module in the example_module directory.
See Related information, for links to building dynamic modules on specific platforms.
- Windows NT and Windows 2000 operating systems - The IBM HTTP Server ships a sample module and project file for building
a DLL on Windows operating systems. The configured project file finds header
files in the src\include directory and resolves references to the src\Corer\ApacheCore.lib
See Building dynamic modules on Windows operating systems for more information.
- APXS Script (UNIX platform only):
The installation process places APXS, a Perl script, in the IBM HTTP Server bin directory. This
script builds dynamically shared objects on AIX, HP, Linux, and Solaris operating systems.
To use the APXS script, ensure that you have Perl script V5.0 or later, installed. You can find the path to the
Perl executable on the first line of the APXS script,
for example, /usr/bin/local/perl. See Related information for links to
using the APXS script on specific platforms. You may have to change this line to accommodate your Perl installation
If you already have an existing Apache version installed in the default directory,
/usr/lib/apache, third-party module configuration scripts
can look for and use parameters based on this existing Apache directory
and these executables. To help avoid this problem, do one of the following:
- Delete your Apache directory.
- Ensure you use third-party configuration script options, prefix=<installation root>
where: prefix represents the installation root for the IBM HTTP Server.
(Back to the top)