Document:TkScript
Author:bsp
Date:2023


1 Introduction

TkScript ("TKS") is a free and open source "glue" script language for C / C++ frameworks.
It is mainly designed for audio / graphics / UI applications and text processing tools.
Features:
Software written in TkScript includes:
TkScript is accompanied by a set of add-on plugins / libraries that provide bindings for:
TkScript has been tested on the following platforms:

2 License

TkScript is distributed under the terms of the GNU General Public License (GPLv2).
The add-on plugins and libraries are distributed under the terms of the GNU Lesser (library) General Public License (LGPLv2), or the MIT / BSD licenses (see plugin / library source for details).
note_s
Software written in TkScript may use any license (FOSS, closed source, ..).

3 Platform compatibility matrix

ComponentWindowsLinuxmacOS
tksYYY
eqxmmsYYY
tkanalogrytmYYY
tkbluetoothYY-
tkchipmunkYYY
tkfileutilsYYY
tkfreeglutYYY
tkfreetype2YYY
tkfreeverbYYY
tkgmpYYY
tkmathYYY
tkmidiY--
tkmidi_alsa-Y-
tkmidi_portmidiYYY
tkmidipipeYYY
tkoldmathYYY
tkopenglYYY
tkportaudioYYY
tkportaudio_alsa-Y-
tkportaudio_oss-Y-
tkradiastoolsYYY
tksamplechainYYY
tksampleeditYYY
tksamplerYYY
tksdlYY-
tksdl12-compat-YY
tksdl2-YY
tksdl_netYYY
tksidplay2YYY
tksmdiY--
tkspeexdspYYY
tksqliteYYY
tktriangulateYYY
tkuiYYY
tkvst2Y--
tkvst2_stub-YY
tkvst2_nogui-YY
tkvst2_macos--Y
tkwiiY--
tkzipYYY
yingtestYYY

4 Downloads

4.1 Precompiled Binaries

Windows 10 x86_64tks.zip (v0.9.84.8, 16Dec2023)
macOS 13 x86_64tks_macos_x86_64.zip (v0.9.84.8, 16Dec2023)
macOS 13 arm64tks_macos_arm64.zip (v0.9.84.8, 16Dec2023)
tip_s
on macOS, copy the extracted the files to /usr/local/ (optional)

4.2 Source

The latest source-code packages are here:
tip_l
How to build (via install helper):
$ wget http://tkscript.org/tks_install_helper.sh 
$ chmod +x tks_install_helper.sh 
$ ./tks_install_helper.sh 
$ sudo -- sh -c 'cd tks_install_helper_tmp/ ; . ./setenv_linux.sh ; m all_install' 
  • downloads the source packages, builds and installs them
  • tested on macOS 13, Debian GNU/Linux 12, Windows 10
How to build (manually):
  • The first three packages (source, build, yac) are mandatory for building a command-line version of tks.
  • The remaining packages are optional.
  • Edit the toplevel makefile (makefile.linux, makefile.macos or makefile.msvc) to choose which additional plugins will be built.
  • Edit+Run . setenv_linux.sh, . ./setenv_macos_arm64.sh, . ./setenv_macos_x86_64.sh or . setenv_msvc.sh to set up cross compiling / target platform / include+lib paths.
  • It is recommended to set up a shell function for make invocation, e.g. m(){ make -j20 -f makefile.msvc $* ; } (done by setenv*)
Requirements / Prerequisites:
  • The Windows build environment requires MSYS2 and the Microsoft Visual Studio compiler, e.g. the free-as-in-beer Community Edition.
  • The Linux build environment requires GCC / G++, GNU make, and GNU Bash.
    • optional (recommended) packages: $ sudo apt-get install build-essential libsdl2-dev libsdl1.2-dev libsdl-net1.2-dev libpng-dev libfreetype-dev libgtk2.0-dev libzip-dev libgnutls28-dev libasound2-dev
    • optional packages: % apt install portaudio19-dev libportmidi-dev sox rubberband-cli
  • The macOS build environment requires Clang (xcode toolchain), make, zsh, and the following brew packages: sdl12-compat, sdl2, libpng, freetype (tested with arm64 and x86_64) (and optionally sdl_net, gnutls, libzip, portaudio, portmidi).
The plugin bindings use the YaC (Yet another Component object model) interface, and the YInG interface generator.
To rebuild the bindings for a specific module, run
$ m yac 
in the plugin (or tks-source) directory.

5 Examples

6 Tools

7 Games

For your amusement, some of the older stuff can be downloaded here:

8 Documentation

See here for language reference guide.
For historical purposes, here are the old changelogs from 2002 - 2015.

Valid HTML 4.01 Transitional

Document created on 16-Dec-2023 14:57:05