Configuring and Managing MPE/iX Internet Services (August 2002)

Chapter 9
HP WebWise MPE/iX Secure Web Server
Module Creation Using the APXS Utility
169
Module Creation Using the APXS Utility
Modules can also be created using the bin/apxs utility Apache eXtenSion tool. Details on using apxs are
found in the apx manual page, http://www.apache.org/docs/programs/apxs.html. Apxs is a Perl script
and requires a working Perl interpreter on the HP e3000. The Perl interpreter is not distributed or supported
as part of FOS but is available as freeware via http://jazz.external.hp.com/src/hp_freeware/perl/.To prepare a
system for running apxs:
Install the GNU tools.
Install the Perl interpreter.
Set up a Perl symbolic link.
shell/iX> ln -s /PERL/PUB/PERL /usr/local/bin/perl
Apxs has a number of options. The -g and -n options will create a module skeleton with a corresponding
Makefile. Log on as MGR.APACHE in order to execute apxs and to create a module with MGR.APACHE as the
owner.
:HELLO MGR.APACHE
:XEQ SH.HPBIN.SYS -L
shell/iX> ./bin/apxs -g -n hw
Creating [DIR] hw
Creating [FILE] hw/Makefile
Creating [FILE] hw/mod_hw.c
shell/iX> cd hw
shell/iX> ls
Makefile mod_hw.c
Apxs -g -n will create directory hw with the module source file mod_hw.c and its Makefile. This directory
is where the module is developed. Note that the mod_hw.c file created here is not the same as the sample
module code. To continue following this example, use the code listings given for mod_hw.c and hw.c.
Makefile can be used for compiling and linking the module. The default Makefile created here by apxs uses
apxs for compiling and linking. We recommend changing this to use gcc and LinkEditor as shown in the
section Modified APXS Makefile (mod_hw). The modified Makefile still calls apxs for getting the correct
compile options and include files but does not use apxs for compiling and linking.
Makefile can easily be modified for customization. For the sample module, mod_hw, the additional source
file, hw.c, was added to Makefile. Using a Makefile is a convenient and flexible way to build modules.
Here is the output from executing mod_hws modified apxs Makefile:
shell/iX> cd /APACHER/PUB/hw
shell/iX> make
gcc -o mod_hw.o /APACHE/PUB/bin/apxs -q CFLAGS -I/APACHE/PUB/bin/apxs -q INCLUDEDIR -c mod_hw.c
gcc -o hw.o /APACHE/PUB/bin/apxs -q CFLAGS -I/APACHE/PUB/bin/apxs -q INCLUDEDIR -c hw.c
callci "linkedit buildxl xl=./mod_hw.so;limit=5"
HP Link Editor/iX (HP30315A.06.15) Copyright Hewlett-Packard Co 1986
LinkEd> buildxl xl=./mod_hw.so;limit=5
LinkEd> addxl from=./mod_hw.o,./hw.o;to=./mod_hw.so; rl=/lib/libm.a,/lib/libc.a
;merge;share
1 OBJECT FILE HAS BEEN ADDED.