diff options
Diffstat (limited to 'coreutils-5.3.0-bin/contrib/gawk/3.1.6/gawk-3.1.6-src/README_d/README.cygwin-dynamic')
-rw-r--r-- | coreutils-5.3.0-bin/contrib/gawk/3.1.6/gawk-3.1.6-src/README_d/README.cygwin-dynamic | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/coreutils-5.3.0-bin/contrib/gawk/3.1.6/gawk-3.1.6-src/README_d/README.cygwin-dynamic b/coreutils-5.3.0-bin/contrib/gawk/3.1.6/gawk-3.1.6-src/README_d/README.cygwin-dynamic new file mode 100644 index 0000000..948538f --- /dev/null +++ b/coreutils-5.3.0-bin/contrib/gawk/3.1.6/gawk-3.1.6-src/README_d/README.cygwin-dynamic @@ -0,0 +1,88 @@ +From: courierdavid@hotmail.com +Newsgroups: comp.lang.awk +Subject: Re: Compiling gawk extensions under Cygwin +Date: 14 Mar 2005 20:47:09 -0800 +Organization: http://groups.google.com +Lines: 67 +Message-ID: <1110862029.175727.109280@o13g2000cwo.googlegroups.com> +References: <1e4e8dbe.0501140813.18248833@posting.google.com> + <u62nb2-pro.ln1@news.heiming.de> +NNTP-Posting-Host: 194.237.142.24 +Mime-Version: 1.0 +Content-Type: text/plain; charset="iso-8859-1" +X-Trace: posting.google.com 1110862033 8921 127.0.0.1 (15 Mar 2005 04:47:13 GMT) +X-Complaints-To: groups-abuse@google.com +NNTP-Posting-Date: Tue, 15 Mar 2005 04:47:13 +0000 (UTC) +User-Agent: G2/0.2 +Complaints-To: groups-abuse@google.com +Injection-Info: o13g2000cwo.googlegroups.com; posting-host=194.237.142.24; + posting-account=Iz4C5wwAAABx1yG_ft8eEAI99Wu1Tku1 +Path: news.012.net.il!seanews2.seabone.net!newsfeed.albacom.net!news.mailgate.org!newsfeed.stueberl.de!proxad.net!64.233.160.134.MISMATCH!postnews.google.com!o13g2000cwo.googlegroups.com!not-for-mail +Xref: news.012.net.il comp.lang.awk:21835 + +Thanks for your help there Michael. I wouldn't have thought of that one +myself without your help :-) + +Anyway - for those who must stick with Cygwin here's a method that +works using the mingw32 makefiles and some modifications: + +Basically you need to extract all exportable symbol names from the +gawk.exe file into a text file and then create a dummy library file +which we can link against on Cygwin. You then throw the library file +away because in reality we use the gawk.exe file as the provider of +those functions. + +1. First grab the gawk source, e.g. gawk-3.1.4.tar.bz2 and decompress +it. +2. Move to the gawk-3.1.4 directory you just created. +3. cp pc/* . (copy the pc directory into the main one) +4. edit makefile - uncomment lines "DYN_FLAGS", "DYN_EXP", "DYN_OBJ" +and "DYN_MAKEXP=$(DMEmingw32) +5. make mingw32 (make a gawk.exe) +6. run "gcc -o gawk.exe array.o builtin.o eval.o field.o gawkmisc.o +io.o main.o ext.o msg.o node.o profile.o re.o version.o dlfcn.o +gawk.exp awkgram.o getid.o popen.o getopt.o getopt1.o dfa.o regex.o +random.o" (i.e. remove the -s from the compile command from the +makefile so the symbols are left in gawk.exe) + +now export all symbols from gawk.exe into foo.def so that we can put +these in our library +7. echo EXPORTS > foo.def +8. nm gawk.exe | grep -E ' [TBD] _' | sed 's/.* [TBD] _//' >> foo.def +9. cp foo.def gawkw32.def + +build the new library with all symbols included +10. make mingw32 + +Now you will see a file "libgawk.a" which you can link against to +create extensions. For example to build an extension called "file" run: + +gcc -shared -dll -DHAVE_CONFIG_H -I . extension/file.c -o file.dll -L . +-lgawk + +Then you can load it in gawk using the expression: + +extension("./file.dll", "dlload"); + +You must use the gawk you compiled from source though. It won't work +with any other gawk unfortunately :-( But that's OK because the +stripped gawk is not too big in size. + +Cheers, +Dave. + +Michael Heiming wrote: +> In comp.lang.awk David Smith <courierdavid@hotmail.com>: +> > Has anyone managed to compile gawk extensions (such as "filefuncs") +> > under Cygwin? +> +> Solution is pretty simple, install a real OS, Linux/*BSD or any +> other unix and this and further problems won't happen. +> +> Good luck +> +> -- +> Michael Heiming (X-PGP-Sig > GPG-Key ID: EDD27B94) +> mail: echo zvpunry@urvzvat.qr | perl -pe 'y/a-z/n-za-m/' +> #bofh excuse 242: Software uses US measurements, but the OS +> is in metric... |