diff options
Diffstat (limited to 'README_d/README.pcdynamic')
-rw-r--r-- | README_d/README.pcdynamic | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/README_d/README.pcdynamic b/README_d/README.pcdynamic deleted file mode 100644 index 678206e6..00000000 --- a/README_d/README.pcdynamic +++ /dev/null @@ -1,93 +0,0 @@ -This is the README for dynamic extension support for GNU awk 3.1.2 under Windows32 -This part of the README is directed to the gawk maintainers. - -The implementation consists of - -pc/dlfcn.h -pc/dlfcn.c - An implementation of the POSIX dynamic loading functions for Windows32. - Bugs and limitations: - the RTLD_* flags are ignored - passing NULL as the module name is not really supported. - dlerror() doesn't always generate useful output. - -pc/w32dynamic.patch - A patch to pc/Makefile. This adds macros to allow dynamic loading - to be compiled in. The macros (DYN_EXP, DYN_OBJ, DYN_FLAGS, and - DYN_MAKEXP) are commented-out by default (which is the default on - Unix as well). I've added definitions only for MS VC and MinGW. - I also added support for pgawk under MS VC and MinGW. - -pc/gawkw32.def - A list of functions to export from gawk.exe. Every function used - in an extension DLL needs to be in this file. I've added the ones - required by the provided examples, but some thought should go into - determining a useful set of API functions. From a maintenance - perspective, it's important that the ordinals (the number following @) - never change. You can use an existing DLL with a gawk.exe which has - new exported functions, but if you change the ordinal of an existing - function, you have to recompile all the extensions that use it. - -extension/Makefile.pc - A make file which compiles a few of the extension examples. - Only readfile, ordchr, and arrayparm are built, since the - other functions didn't compile without sizeable modifications. - -extension/pcext.def - A module definition file which exports dlload. - -extension/w32dynamic.patch - A patch to readfile.c to have it open files in binary mode. Without - this, the bytes read doesn't always match the file size. - -w32dynamic.patch - A patch to awk.h. This makes the temporary variable _t static and - adds an attribute to some data declarations when WIN32_EXTENSION is - defined. The issue is that data imported from a separate module has - a different level of indirection from the same data in the - original module. The difference can be made transparent by adding - __declspec(dllimport)) to the declarations used in the importing module. - Since _t doesn't actually have to be shared, I've just made it - static to the extension module and avoided the problem. - -README_d/README.pcdynamic - This file. - -The remainder of the file is intended for people installing and using gawk -and probably ought to be added to README.pc ---- -To compile gawk with dynamic extension support, uncomment the -definitions of DYN_FLAGS, DYN_EXP, DYN_OBJ, and DYN_MAKEXP in the -configuration section of Makefile. There are two definitions for -DYN_MAKEXP -- pick the one that matches your target. - -To build some of the example extension libraries, cd to the extension -directory and copy Makefile.pc to Makefile. You can then build using the same -two targets. To run the example awk scripts, you'll need to either change the -call to the `extension' function to match the name of the library (for -instance, change "./ordchr.so" to "ordchr.dll" or simply "ordchr"), or rename -the library to match the call (for instance, rename ordchr.dll to ordchr.so). - -If you build gawk.exe with one compiler but want to build an extension library -with the other, you need to copy the import library. Visual C uses a library -called gawk.lib, while MinGW uses a library called libgawk.a. These files -are equivalent and will interoperate if you give them the correct name. -The resulting shared libraries are also interoperable. - -To create your own extension library, you can use the examples as models, but -you're essentially on your own. Post to comp.lang.awk or send e-mail to -ptjm@interlog.com if you have problems getting started. If you need to access -functions or variables which are not exported by gawk.exe, add them to -gawkw32.def and rebuild. You should also add ATTRIBUTE_EXPORTED to the -declaration in awk.h of any variables you add to gawkw32.def. - -Note that extension libraries have the name of the awk executable embedded in -them at link time, so they will work only with gawk.exe. In particular, they won't -work if you rename gawk.exe to awk.exe or if you try to use pgawk.exe. You can -perform profiling by temporarily renaming pgawk.exe to gawk.exe. You can resolve -this problem by changing the program name in the definition of DYN_MAKEXP for -your compiler. - -On Windows32, libraries are sought first in the current directory, then in the -directory containing gawk.exe, and finally through the PATH environment -variable. |