Files in the top-level directory of check-in trunk
- .project
- .travis.yml
- .fossil-settings
- .github
- doc
- generic
- tea
- tests
- win
- aclocal.m4
- ChangeLog
- configure
- configure.ac
- license.terms
- Makefile.in
- pkgIndex.tcl.in
- README
- README.sha
- tea.pdf
This is a sample extension showing an implementation of the Tcl Extension
Architecture (TEA). Please see the webpage
http://www.tcl.tk/doc/tea/
for more details on TEA. You can also read the enclosed "tea.pdf" document
for instructions on how to adapt this sample extension to your extension.
This package is a freely available open source package. You can do
virtually anything you like with it, such as modifying it, redistributing
it, and selling it either in whole or in part. See the file
"license.terms" for complete information.
CONTENTS
========
The following is a short description of the files you will find in
the sample extension.
Makefile.in Makefile template. The configure script uses this file to
produce the final Makefile.
README This file
README.sha A description of the extension itself.
aclocal.m4 Generated file. Do not edit. Autoconf uses this as input
when generating the final configure script. See "tcl.m4"
below.
configure Generated file. Do not edit. This must be regenerated
anytime configure.ac or tclconfig/tcl.m4 changes.
configure.ac Configure script template. Autoconf uses this file as input
to produce the final configure script.
pkgIndex.tcl.in Package index template. The configure script will use
this file as input to create pkgIndex.tcl.
sample.c Core Secure Hash Algorithm code.
sample.h Header file for functions in the C files.
sha1.n Unix nroff man page
tclsample.c Implementation of new Tcl command "sha1".
tea.pdf PDF file describing the current implementation of the
Tcl Extension Architecture
tclconfig/ This directory contains various template files that build
the configure script. They should not need modification.
install-sh Program used for copying binaries and script files
to their install locations.
tcl.m4 Collection of Tcl autoconf macros. Included by
aclocal.m4 to define SC_* macros.
UNIX BUILD
==========
Building under most UNIX systems is easy, just run the configure script
and then run make. For more information about the build process, see
the tcl/unix/README file in the Tcl src dist. The following minimal
example will install the extension in the /opt/tcl directory.
$ cd sampleextension
$ ./configure --prefix=/opt/tcl
$ make
$ make install
WINDOWS BUILD
=============
The recommended method to build extensions under windows is to use the
Msys + Mingw build process. This provides a Unix-style build while
generating native Windows binaries. Using the Msys + Mingw build tools
means that you can use the same configure script as per the Unix build
to create a Makefile. See the tcl/win/README file for the URL of
the Msys + Mingw download.
If you have VC++ then you may wish to use the files in the win
subdirectory and build the extension using just VC++. These files have
been designed to be as generic as possible but will require some
additional maintenance by the project developer to synchronise with
the TEA configure.ac and Makefile.in files. Instructions for using the
VC++ makefile are written in the first part of the Makefile.vc
file.
INSTALLATION
============
The installation of a TEA package is structure like so:
$exec_prefix
/ \
lib bin
| |
PACKAGEx.y (dependent .dll files on Windows)
|
pkgIndex.tcl (.so|.dll files)
The main .so|.dll library file gets installed in the versioned PACKAGE
directory, which is OK on all platforms because it will be directly
referenced with by 'load' in the pkgIndex.tcl file. Dependent DLL files on
Windows must go in the bin directory (or other directory on the user's
PATH) in order for them to be found.