TEA3

Difference between version 26 and 27 - Previous - Next
Currently, [TEA] version 3 is defined by the [SampleExtension%|%sample extension%|%].  For documentation, look in the `tea` subdirectory.  The [http://www.tcl.tk/doc/tea/tea_tcl2k.pdf%|%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:

======none
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:

======none
--- 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
======none
$ 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).

----
!!!!!!
%| [Category Package] | [Category Porting] |%
!!!!!!