1 Introduction
TkScript is a portable and free open source "glue" script language for C / C++ frameworks.
It is mainly designed for multithreaded audio / graphics / UI applications, and text processing tools.
Software written in TkScript includes
- The Synergy MIDI sequencer
- The Eureka DAW / plugin host (work in progress)
- Several ("indie") 2D / 3D games
- Proprietary software (e.g. in-house graphics design tools, log-file parsers, code generators, ..)
- Text processing tools
- md - a markdown to HTML converter
- org - an org-mode like text processor, mind map converter, and project plan scheduler + report generator
TkScript is accompanied by a set of add-on plugins / libraries that provide bindings for
TkScript has been tested on the following platforms:
- x86 / x64 Windows (2000 / XP / 7 / 8 / 10)
- x86 / x64 Linux
- x86 MacOSX (command line only)
- M68K AmigaOS 3.x (a while ago, CLI-only)
- ARM Linux (e.g. Open Pandora, Raspberry Pi)
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).
|
Software written in TkScript may use any license (FOSS, closed source, ..). |
3 Downloads
3.1 Precompiled
The latest precompiled binaries for 64bit Windows 10 are here:
tks.zip (v0.9.78.16, 24Jun2022).
3.2 Source
The latest source-code packages are here:
- tks-source
- tks-build
- yac, yingtest
- tkchipmunk (v7)
- tkfreetype2
- tkfileutils
- tkmath, tkoldmath, tkgmp
- tkopengl
- tksdl
- tksdl_net, tkbluetooth
- tkmidi, tkmidi_alsa, tkmidipipe
- tkportaudio, tkportaudio_alsa_async, tkportaudio_oss
- svg_loader, tktriangulate
- tkui
- tkunit
- tkvst2, tkvst2 (Linux stub),tksampler, tksamplechain, tksampleedit
- tkzip
|
How to build:
- 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 or makefile.msvc ) to choose which additional plugins will be built.
- Edit+Run
. setenv_linux.sh or . setenv_msvc.sh to set up cross compiling / target platform / include+lib paths.
- It is recommended to set up a shell alias for
make invocation, e.g. alias m="make -j20 -f makefile.msvc"
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.
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. |
4 Examples
- dog (API documentation generator, from 2009) (docs)
- md (markdown document generator, 2018-2020) (docs)
- org (org-mode-like document processor, 2020) (docs)
6 Games
For your amusement, some of the older stuff can be downloaded here:
- retrovaders2 (a Space Invaders like game, from 2001)
- loadmd2 (a loader / viewer for Quake2 models, from 2002)
- equalize_it (a SID player and collection of C64 tunes, from 2003)
- gkraft (2D cave flyer, from 2004)
- racer (3D racing game, from 2008)
- jumpy (2D jump'n'run, from 2010)
- tequila (a classic Amiga500 demo effect ported to OpenGL, from 2010)
7 Documentation
See
here for language reference guide.
For historical purposes,
here are the old changelogs from 2002 - 2015.
Document created on 24-Jun-2022 14:22:08