-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.STATIC
31 lines (28 loc) · 1.69 KB
/
README.STATIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
This file describes how an author of a Rexx external function package
needs to alter their package to be supported by Regina.
o The external package needs to be provided as a statically linkable library.
Under Unix platforms, this is usually built with the "ar" command, and has
a name of "libpackage.a", where "package" is the package name.
o You need to include in the library a function:
void *getpackageFunctionAddress( char *name );
where "package" is the package name.
This function returns the address of the Rexx external function with the
name "name". The comparison between "name" and the function name within
the package should be done irrespective of case.
Note that the address of the package's "load" function; eg SysLoadFuncs, must
be returned with a call to this function.
See the included test1 and test2 external function packages (test1.c and
test2.c).
o Changes are also required to Regina; staticld.c and the aclocal.m4 autoconf
file. See the other supported external function packages for what to
include.
To build a "regina" binary that contains multiple, statically linked external
function packages follow these steps.
1) Build Regina normally without any statically loaded external function packages.
2) Install this build
3) Build each external function package normally
4) Configure Regina to include the external function packages required and build
5) Do NOT install this version of Regina as the regina-config file will return
a list of all static libraries that the "regina" binary was built with and
next time you try and build one external function package it will attempt to
link in all the others. Simply copy the build "regina" binary as required.