Sun Java System Web Server 6.1 SP11 NSAPI Programmer's Guide

Compile and Link

Compile and link your code with the native compiler for the target platform. For UNIX, use the gmake command. For Windows, use the nmake command. For Windows, use Microsoft Visual C++ 6.0 or newer. You must have an import list that specifies all global variables and functions to access from the server binary. Use the correct compiler and linker flags for your platform. Refer to the example Makefile in the server_root/plugins/nsapi/examples directory.

Adhere to the following guidelines for compiling and linking.

Include Directory and nsapi.h File

Add the server_root/plugins/include (UNIX) or server_root\plugins\include (Windows) directory to your makefile to include the nsapi.h file.

Libraries

Add the server_root/bin/https/lib (UNIX) or server_root\bin\https\bin (Windows) library directory to your linker command.

The following table lists the library that you need to link to.

Table 3–1 Libraries

Platform  

Library  

Windows 

ns-httpd40.dll (in addition to the standard Windows libraries)

HP-UX 

libns-httpd40.sl

All other UNIX platforms 

libns-httpd40.so

Linker Commands and Options for Generating a Shared Object

To generate a shared library, use the commands and options listed in the following table.

Table 3–2 Linker Commands and Options

Platform  

Options  

Solaris™ Operating System (SPARC® Platform Edition) 

ld -G or cc -G

Windows 

link -LD

HP-UX 

cc +Z -b -Wl,+s -Wl,-B,symbolic

AIX 

cc -p 0 -berok -blibpath:$(LD_RPATH)

Compaq 

cc -shared

Linux 

gcc -shared

IRIX 

cc -shared

Additional Linker Flags

Use the linker flags in the following table to specify which directories should be searched for shared objects during runtime to resolve symbols.

Table 3–3 Linker Flags

Platform  

Flags  

Solaris SPARC 

-R dir:dir

Windows 

(no flags, but the ns-httpd40.dll file must be in the system PATH variable)

HP-UX 

-Wl,+b,dir,dir

AIX 

-blibpath:dir:dir

Compaq 

-rpath dir:dir

Linux 

-Wl,-rpath,dir:dir

IRIX 

-Wl,-rpath,dir:dir

On UNIX, you can also set the library search path using the LD_LIBRARY_PATH environment variable, which must be set when you start the server.

Compiler Flags

The following table lists the flags and defines you need to use for compilation of your source code.

Table 3–4 Compiler Flags and Defines

Parameter  

Description  

Solaris SPARC 

-DXP_UNIX -D_REENTRANT -KPIC -DSOLARIS

Windows 

-DXP_WIN32 -DWIN32 /MD

HP-UX 

-DXP_UNIX -D_REENTRANT -DHPUX

AIX 

-DXP_UNIX -D_REENTRANT -DAIX $(DEBUG)

Compaq 

-DXP_UNIX -KPIC

Linux 

-DLINUX -D_REENTRANT -fPIC

IRIX 

-o32 -exceptions -DXP_UNIX -KPIC

All platforms 

-MCC_HTTPD -NET_SSL

The following table lists the optional flags and defines you can use.

Table 3–5 Optional Flags and Defines

Flag/Define  

Platforms  

Description  

-DSPAPI20

All 

Needed for the proxy utilities function include file putil.h

Compiling 3.x Plugins on AIX

For AIX only, plug-ins built for 3.x versions of the server must be relinked to work with 4.x and 6.x versions. The files you need, which are in the server_root/plugins/nsapi/examples/ directory, are as follows: