Download

Package can be downloaded from Sourceforge. You can also browse or checkout subversion repository here. Please note that subversion repository does not include needed datafiles, only source codes.

All the files in package are signed using OpenBSD signify tool. To verify files after unpacking, following command should give screenful of OK's:

$ signify -C -p signify_key-detroit-X.Y.Z.pub -x SHA256.sig

For now the engine sould be considered as beta quality, because not all functions are thoroughly tested.

Resource usage

Detroit engine is not the lightest engine available. It tries to do as much work as it can in parallel, and makes use of many internal cache buffers. As a minimum, you need post 2000 workstation for smooth usage, something like 4 CPU cores is a good baseline. If supplied widgets are in use, you need at least something like 100Mb of RAM.

Compilation

If you just downloaded the package and are willing to compile it, I recommend that you check one of the example projects in examples page. If you compile the plain engine, it does not do anything at all, it needs some fuel to drive. Examples are included in the distribution package.

For succesful compilation, you need:

Basic set of essential libs needed:

Dependencies needed for windowing system to work:

Supported with windowing system if found:

If any of these audio backends exists, audio system will work:

Supported with audio playback if found:

If you would like to compile supplied Redtools requester library, you need to install:

Before compilation, fetch the data files by using build/pkget.sh script. Script fetches the data package which includes widgets and other data files and unpacks it automatically:

$ ./build/pkget.sh

Compilation goes as usual on unix systems:

$ ./configure
$ gmake

If you want to use clang instead of gcc, or whichever is the default in your system, pass CC=clang to configure script. By default configure script uses pkg-conf to find needed packages.

Supported platforms

Supported platforms are listed below. Configure snippets for each platform are used by me and are proven to work. Please note that configure snippets are just an examples, your system will most likely vary.

FreeBSD (amd64, sparc)

FreeBSD is the main developing platform, and works out-of-the box after installing libiconv. Oldest tested version is 12.3.

$ ./configure \
	--prefix=`pwd` \
	--enable-debug \
	--enable-safemem \
	--enable-native \
	--with-libiconv=/usr/local \
	--with-libintl=/usr/local \
	--with-libltdl=/usr/local \
	--with-motif=/usr/local \
	--with-redtools \
	--with-redtools-xft \
	--with-redtools-xft-typeface=Noto \
	--with-redtools-xft-fontsize=12 \
	OPENSSL_CFLAGS=-DPROG_HAS_OPENSSL -I/usr/include \
	OPENSSL_LIBS=-L/usr/lib -lcrypto -lssl \
	PKG_CONFIG_PATH=/usr/local/libdata/pkgconfig

NetBSD (amd64, pmax, sparc, vax)

NetBSD is one of the developing platforms, and works out-of-the box after installing libiconv. Oldest tested version is 9.3.

$ ./configure \
	--prefix=`pwd` \
	--enable-debug \
	--enable-safemem \
	--enable-native \
	--with-libiconv=/usr/pkg \
	--with-libintl=/usr/pkg \
	PKG_CONFIG_PATH=/usr/X11R7/lib/pkgconfig

OpenBSD (amd64, vax)

OpenBSD works out-of-the box after installing libiconv. Oldest tested version is 5.9.

$ ./configure \
	--prefix=`pwd` \
	--enable-debug \
	--enable-safemem \
	--enable-native \
	--enable-unveil \
	--with-libiconv=/usr/local \
	--with-libintl=/usr/local \
	PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

Linux (amd64)

Linux should work nicely, but if nvidia display driver is in use, -DPROG_HAS_X11 must be specified when configuring because nvidia does not supply pkg-conf file to their OpenGL library (at the time of writing). Oldest tested versions are CentOS 7 and Debian 8. Please note that this platform is not supported by me anymore.

$ ./configure \
	--prefix=`pwd` \
	--enable-debug \
	--enable-safemem \
	--enable-native \
	GL_CFLAGS=-DPROG_HAS_X11 -I/usr/include \
	GL_LIBS=-L/usr/lib -lGL \
	PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/share/pkgconfig

Solaris 11/SunOS 5.11 (amd64)

Solaris 11 should work fine after installing some freeware dependencies.

$ ./configure \
	--prefix=`pwd` \
	--enable-debug \
	--enable-native \
	PKG_CONFIG_PATH=/usr/lib/amd64/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig

Solaris 10/SunOS 5.10 (amd64)

Solaris 10 should work more or less after installing some freeware dependencies.

$ ./configure \
	--prefix=`pwd` \
	--enable-debug \
	--enable-native \
	X11_CFLAGS=-DPROG_HAS_X11 -I/usr/include \
	X11_LIBS=-L/usr/lib -lX11 \
	XEXT_CFLAGS=-I/usr/include \
	XEXT_LIBS=-L/usr/lib -lXext \
	GL_CFLAGS=-DSUN_OGL_NO_VERTEX_MACROS -I/usr/include \
	GL_LIBS=-L/usr/lib -lGL \
	PKG_CONFIG_PATH=/usr/lib/amd64/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig

Solaris 8/SunOS 5.8 (sparc)

Solaris 8 should work more or less after installing some freeware dependencies.

$ ./configure \
	--prefix=`pwd` \
	--enable-debug \
	--enable-native \
	--with-libiconv=/usr/local \
	--with-libintl=/usr/local \
	X11_CFLAGS=-DPROG_HAS_X11 -I/usr/X/include \
	X11_LIBS=-L/usr/X/lib -lX11 \
	XEXT_CFLAGS=-I/usr/X/include \
	XEXT_LIBS=-L/usr/X/lib -lXext \
	GL_CFLAGS=-DSUN_OGL_NO_VERTEX_MACROS -I/usr/X/include \
	GL_LIBS=-L/usr/X/lib -lGL \
	FREETYPE2_CFLAGS=-I/usr/local/include/freetype2 \
	FREETYPE2_LIBS=-L/usr/local/lib -lfreetype \
	PKG_CONFIG_PATH=/usr/lib/amd64/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig

Solaris 7 and SunOS 2.6 (sparc)

Same as Solaris 8 above.

MacOS X/Darwin

OS X probably works fine, but needs some dependencies installed using port(1). Also X server is needed. Please note that this platform is not supported by me anymore.

$ ./configure \
	--prefix=`pwd` \
	--enable-debug \
	--enable-safemem \
	--enable-native \
	--with-libiconv=/opt/local \
	--with-libintl=/opt/local \
	PKG_CONFIG_PATH=/opt/local/lib/pkgconfig:/opt/local/share/pkgconfig

Copyright © 2023, Jani Salonen <salojan at goto10 piste co>. Piste is finnish word and means dot. All rights reserved.