Building dynamic shared object modules or dynamic link libraries with IBM HTTP Server: IBM HTTP Server
System Administration IBM HTTP Server documentation
Pertains to UNIX users Pertains to Windows NT users Pertains to Windows 2000 users

Building dynamic shared object modules or dynamic link libraries with the IBM HTTP Server

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:

Pertains to AIX users
Pertains to HP-UX users
Pertains to Linux users
Pertains to Solaris users
Pertains to Windows NT users
Pertains to Windows 2000 users

Identifying viable compilers

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

Applies to UNIX platform

Locating build components for the UNIX platform

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.

Pertains to Windows NT users Pertains to Windows 2000 users

Locating build components for the Windows operating systems

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.
Pertains to UNIX users Pertains to Windows NT users Pertains to Windows 2000 users

Understanding build method options

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 directory.

    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 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.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 directory.

Building third-party modules to run as dynamic shared object modules or dynamic link libraries

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.

 
Finding related information

     (Back to the top)