The complete library is released under the terms of the Gnu Lesser General Public License (LGPL)
No library manager is shipped with with standard OS/2 Warp 4 or its toolkit. As a convenience to users who might want to modify or extend the library, an unmodified executable of the Open Watcom® Library Manager (wlib.exe) is included.
The text of the complete license for Open Watcom software is included.Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved. Source code is available under the Sybase Open Watcom Public License. See http://www.openwatcom.org/ for details.
In the following, <release> represents the current release. For this version that is pli-1.3.1.
This document describes the details of the OS/2 version of the library. For the Linux version see library_linux.
The supplied makefile will build a static object library in <release>\lib\static\prf.lib, and a DLL and import library in <release>\lib\prf.dll and <release>\lib\prf.lib.
The complete library sources are found in <release>\lib\source (PL/I source code), <release>\lib\source\asm (OS-independent assembler source code and includes), and <release>\lib\include (PL/I include files). Operating system dependent sources are in <release>\lib\source\OS2 and <release>\lib\source\linux To modify the library, make your changes to the source, cd to <release>\lib, and type make os2. The makefile is built for Gnu make and compatibles, it currently will not work with wmake.
To add a procedure to the library, after coding the source, you need to add its entry to <release>\lib\prf.def for the import library. Ordinals 250 and up are expected to be available for user procs. You will also need to add the object file name to <release>\lib\prf.lbc, the command file for wlib.
The startup procedure "_pli_Start" (<release>\lib\asm\plistart.asm) needs to be linked with the main procedure, and references the external symbol "_pli_Main", which is defined for each OPTIONS(MAIN) procedure. To simplify linking, a copy of this code is stored in the import library. Since "_pli_Main" is not defined in the library code, a dummy module (<release>\lib\OS2\dummy.asm) is linked into the DLL to provide its resolution. plistart is stored in the static library with the other runtime procedures, and no dummy is required.
Since the compiled PL/I code specifies the library to be linked (prf.lib), both the import library and the DLL have the same name. The <release>\samples directory gives an example of how to choose the desired library.
The directory <release>\lib\include contains definitions of the data areas used by the library, with descriptive comments. The following might be of particular interest:
Iron Spring PL/I version 1.3.1, 15 Aug 2024.