zipkit

zipkit.sh -- compile tcl/tk packages and build tclsh/wish/zip based binaries
Login

Usage

./zipkit.sh info

Return list of provided packages.

./zipkit.sh sources ?package ..?

Get source distribution files and extract under ./sources/ if necessary. If no package is given then get all defined package sources.

./zipkit.sh win|unix|macosx *?--.. ..? ?tclsh wish zip name? ?package ..?*

Compile given packages for win or unix (macos not tested!). If tclsh is given then the first package should be one pkg_tcl*. If wish is given then the first packages should be pkg_tcl* and pkg_tk*. --... arguments will be used as additional arguments in configure calls. If tclsh|wish|zip name is given then create a binary with all following packages included. The binary sources are collected under ./build/'name'.vfs/. If a ./sources/'name'.vfs/ exists it will be used to initially setup the ./build/'name'.vfs/ directory.

./zipkit.sh local ...

Call internal zipkit_local() function with given args. The zipkit_local() function can be redefined in the local site definition file ziplocal.sh.

Local definitions

Local definitions can be placed in ./ziplocal.sh. If this file exists it will be sourced from the main program.

Internals

Each package definition is in an functions starting with pkg_. The line of the function definition excluding () { will be displayed by the info command.

Directory structure

./zipkit.sh -- provided script file

./ziplocal.sh -- local definition file, will be sourced if provided

./... -- package source distribution files (.tar.gz, .zip)

./sources/ -- extracted package sources

./build/ -- build result directory

./build/bin/ -- binary results

./build/include/ -- header files

./build/lib/ -- libraries

./build/lib64/ -- libraries

./build/man/ -- man pages

./build/share/ -- man pages

./build/'name'.vfs/ -- created vfs directory of binary targets

./build/'name'.vfs/tcl_library/ -- tcl core (tclsh,wish)

./build/'name'.vfs/tk_library/ -- tk core (wish)

./build/'name'.vfs/.../ -- packages in binary targets (tclsh,wish,zip)

./build/.../ -- package build results

Windows builds

To build under windows msys/mingw is required. One way is:

Get https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/6.3.0/threads-win32/sjlj/i686-8.1.0-release-win32-sjlj-rt_v6-rev0.7z and extract it as C:/mingw32.

Get https://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/msys+7za+wget+svn+git+mercurial+cvs-rev13.7z and extract it as C:/mingw32/msys

Put "C:/mingw32 /mingw" in file C:/mingw32/msys/etc/fstab

Start the shell window with: D:\mingw32\msys\msys.bat

Examples

Attention! When building with different tcl/tk versions (8.7, 9.0) the ./build directory should be removed.

# Display available packages
./zipkit.sh info

# Get all sources 
./zipkit,sh sources

The following examples are for windows. To build under unix just change the win argument in unix.

# Compile tcl and tk 8.7
./zipkit.sh win pkg_tcl8_7a5 pkg_tk8_7a5

# Create binary interpreter **test** with tcl/tk 8.7 and tko
./zipkit.sh win wish test pkg_tcl8_7a5 pkg_tk8_7a5 pkg_tko0_4

# Compile tcl and tk 9.0
./zipkit.sh win pkg_tcl9_0b1 pkg_tk9_0b1

# Create binary interpreter **test** with tcl/tk 9.0 and tko
./zipkit.sh win wish test pkg_tcl9_0b1 pkg_tk9_0b1 pkg_tko0_4

Sources

The repository is hosted at: http://chiselapp.com/user/rene/repository/zipkit

Download the zipkit.sh with: http://chiselapp.com/user/rene/repository/zipkit/doc/trunk/zipkit.sh

Copyright

© 2024- RenĂ© Zaumseil r.zaumseil@freenet.de

BSD license. https://www.tcl-lang.org/software/tcltk/license.html