Building and installing
Requirements
Development libraries alongside with their tested versions (as of this writing) are given below:
- >=Lua-5.1.2
- >=libX11-1.1.3 (for the x11 driver)
- >=libXft-2.1.12 (for the x11 driver)
- XFree86VidMode extension (for the x11 driver)
- >=fontconfig-2.5.0 (for the x11 driver)
- >=freetype-2.3.5 (for the x11 and directfb drivers)
- >=DirectFB-0.9.25.1 (for the directfb driver)
- MinGW (for the Windows platform)
- microwindows-0.91 (for the Nano-X driver)
LibXft and fontconfig are needed for building the x11 driver, but tekUI falls back to the core X11 API if they are unavailable at runtime. In addition to that, for the documentation system and the DirList class to work, an installation of the LuaFileSystem package is recommended.
Linux note: By popular request, these are the names of packages
required to compile and run tekUI on Ubuntu Linux: lua5.1,
liblua5.1-0-dev, liblua5.1-filesystem0, libfreetype6-dev,
libxft-dev, libxext-dev, libxxf86vm-dev.
Adjusting the build environment
This release has been tested on and should compile and run out of the box on
- Ubuntu Linux 9.10, 8.04 and 7.10
- Windows 2000, Wine
- FreeBSD 7.0 (special precautions needed, see annotations below)
- Gentoo Linux x86/10.0, x86/2008.0, amd64/2007.0, ppc/2007.0
If building fails for you, you have to adjust the build environment,
which is located in the config file on the topmost directory
level. Supported build tools are gmake (common under Linux) and
pmake (common under FreeBSD).
FreeBSD notes
You need a Lua binary which is linked with the -pthread option,
as tekUI is using multithreaded code in shared libraries, which are
dynamically loaded by the interpreter.
Windows notes
Not much time has been spent on the Windows version yet. As a result,
this display driver is still incomplete and in an experimental state.
For example, it is not possible to select an entry in a popup without
releasing the mouse button first. For reasons not yet investigated,
this display driver feels disproportionately sluggish. For adjusting
the build environment, see the config file.
X11 notes
The XFree86VidMode extension is linked against by default. It can
be disabled by removing -DENABLE_XVID from X11_DEFS in the
config file.
In case of problems with texts and labels, try removing
-DENABLE_XFT from X11_DEFS in the config file. Some versions
of X11 are known to not support the Composite extension and
antialiased fonts using Xft at the same time.
Nano-X notes
For the Nano-X driver you will almost certainly have to adjust the
config file. Due to some limitations of Nano-X, tekUI
applications will probably make sense only when running in fullscreen
mode without a window manager. See also tek/ui/style/nanox.css
for more information. Example:
# nano-X & THEME=nanox FULLSCREEN=true bin/demo_custom.lua
Raw framebuffer notes
Drawing primitives, clipping, and antialiased fonts are provided, and rendering can be targeted to user-supplied memory. This driver implements no input and serves as a template (or skeleton) for specializations in a target context, like custom hardware or a 3D game or simulation. For testing and debugging, the raw framebuffer driver is recursive; by plugging in another display driver, an instant visualization device and input source can be provided.
Building
To see all build targets, type
# make help
The regular build procedure is invoked with
# make all
Installation
A system-wide installation of tekUI is not strictly required – in so far as the majority of display drivers is concerned. The DirectFB driver, in contrast, looks up fonts and cursors globally and must be installed in any case.
Once tekUI is built, it can be worked with and developed against, as long as you stay in the top-level directory of the distribution; all required modules and classes will be found if programs are started from there, e.g.:
# bin/demo.lua
If staying in the top-level directory is not desirable, then tekUI must be installed globally. By default, the installation paths are
/usr/local/lib/lua/5.1/usr/local/share/lua/5.1
It is not unlikely that this is different from what is common for
your operating system, distribution or development needs, so be sure
to adjust these paths in the config file. The installation is
conveniently invoked with
# sudo make install
Environment variables
NOCURSOR-"true"to disable the mouse pointer over a tekUI application. This may be useful when running on a touch screen.FULLSCREEN-"true"to try opening an application in fullscreen mode. Fullscreen support varies and depends largely on the display driver in use.THEME- Theme names corresponding to style sheet files intek/ui/style/. Multiple themes can be separated by spaces. The default is"default desktop". The desktop theme tries to import the color scheme found in a GTK2 configuration file.GTK2_RC_FILES- Possible locations of a gtkrc-2.0 configuration file.