TEA3

Currently, TEA version 3 is defined by the sample extension. For documentation, look in the tea subdirectory. The old documentation should be ignored wherever it conflicts with the sample extension.

To generate the documentation, run tea/toman.tcl which generates a single file teadoc.man which can be processed by the Tcllib utility doctools, usually with the dtp application or (theoretically more easily) with dtplite. Both man-pages and HTML output can be obtained.

Actually at the moment (2016-01-27), dtplite gives an error, so dtp is better:

dtp doc html teadoc.man  > teadoc.html

dtp doc nroff teadoc.man > teadoc.n

The latter can be read with man -l teadoc.n .

APN Actually doing the above is a lot more time consuming than it looks so a pre-generated copy is available from https://www.magicsplat.com/tea3.html . Current as of 2020-04-23.


Does anyone have any thoughts and suggestions on how one goes from writing some C code to creating the configure.in, Makefile.in, etc. files, for people unfamilar with working with those files?

Do we just take the ones from sample extension and use them as is, or are there commands that we need to run to customize them for a specific application?


LVwikignome - 2012-02-27 13:03:33

Re: creating TEA structure from C code

That's a great question. I am pretty certain that you cannot use the files exactly as is, since they are set up to generate the Makefile and to build the code for the sample.

If someone out there has regularly made use of the TEA structure to create the configure and makefile for their own code, could you start a page on steps that you find helpful?

Thank you!

EMJ 2016-01-27
The documentation (see above) does tell you what to change, but I've just created a loadable extension by replacing the sample files in the generic directory with my own and then changing configure.ac as follows:
--- configure.ac
+++ configure.ac
@@ -22,1 +22,1 @@
-AC_INIT([sample], [0.5])
+AC_INIT([tclrhubarb], [0.1])
@@ -74,1 +74,1 @@
-TEA_ADD_SOURCES([sample.c tclsample.c])
+TEA_ADD_SOURCES([rhubarb_wrap.c])
@@ -77,1 +77,2 @@
-TEA_ADD_LIBS([])
+#TEA_ADD_LIBS([])
+TEA_ADD_LIBS([-lrhubarb])

then

$ autoconf
$ ./configure
$ make
$ tclsh
% lappend auto_path .
% package require tclrhubarb
% rhubarb_some_command
...

all on Linux, of course, there's a win directory for Windows where changes would be needed.

No need to know anything about autoconf at this point, just run it.

The last change in configure.ac is only because my extension is a wrapper (SWIG-generated) for the famous rhubarb library (just kidding, it's real name would be a red herring here).