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) and Secure Sockets Layer (SSL).
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 for AIX V22.214.171.124 or VisualAge C++ Professional V126.96.36.199
- HP - HP_UX aC++ Compiler (A.03.xx)
- Linux for Intel - gcc-2.95.x
- Linux for PowerPC - gcc 3.2.2
- Linux for S/390 - gcc 3.2.2
- Solaris - SunWorkShop V5.0
- Windows - Microsoft Visual C++ 6.0
Locations of the key components for building DSOs and DLLs on the UNIX platform follow:
- Locate the header files in the include directory.
- Locate the APXS script in the bin directory.
Use the library files and the header files with the IBM HTTP Server on
Windows operating systems.
- Locate the library files in the src/include 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 bin
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 module (mod_example.c)
in the example_module directory. See Apache
APXS for more information.
- Windows 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 file. 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.003 or
later, installed. Ensure the path to the Perl executable on the first
line of the APXS script is correct, for example, /usr/bin/local/perl.
APXS for information on 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 or IBM HTTP Server version installed
in the default directory, /usr/lib/apache or /usr/IBMIHS, third-party module
configuration scripts can look for and use parameters based on this existing
Apache or IBM HTTP Server 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)