Prerequisites

You must first have installed:

  1. Ocaml 3.09 to build the Felix compiler,
  2. Python to run the build scripts,
  3. A C++ compiler. The build script is preset to use GNU g++.

Supported Platforms

Currently a Unix like environment is required. Felix has been built on the following platforms:

  1. Linux RH9 (x86) (g++ 3.3.2)
  2. Linux Ubuntu (x86_64/AMD64) (g++ 3.4) (Ocaml bytecode)
  3. Mac OS9 (CodeWarrior)
  4. OSX 10.2, 10.3, 10.4 (g++)
  5. Solaris 9 SPARC (g++)
  6. Free BSD 5.2.1 i386 (g++)
  7. Win32 Cygwin (g++)
  8. Win32 MingW (g++)

The code generated by Felix also compiles on native Win32 using MSVC++.

Binary Download

Download MSI format Win32 Binary package, built by Advanced Installer.

Source Download

Download developer tarball 'Morphlix' flx_1.1.4_x1_src.tgz

Download latest stable tarball 'Felix' flx_1.1.1_src.tgz

Old Version flx_1.1.0_src.tgz

Make procedure

To bootstrap the build, type

./configure

on the command line to unpack the build scripts and makefile. You may need to edit the files

config/*.py

to suit your platform.

You should now be able to:

make
make doc

Become superuser and type

make install

to install the system, by default in /usr/local/lib/felix, the scripting driver harness in /usr/local/bin, and the man pages in /usr/local/man. If these install points are not suitable for your system, you'll have to edit the config/config.py file.

Building your Library

Felix only comes with a core service library. Instead of providing a more complete library, we provide a tool for generating wrappers for you complete C environment. Type

make default_wrappers

to copy the wrapper generator control files, found in the config directory, and ending in .flxcc.default to the corresponding files without the .default suffix. You can now edit these .flxcc files as required, they won't be clobbered except by another make default_wrappers command. Type

make wrappers

to generate wrappers for the sample files. After the wrappers are generated you can install resulting directory trees in an appropriate place such as /usr/local/lib/felix/lib.

DO NOT EXPECT THIS PROCESS TO WORK WITHOUT EDITING THE CONTROL FILES. The sample files work on my Redhat Linux, version 9, system. Read the flxcc reference material for more information. Whilst every effort is made to reduce the pain of configuring the wrapper generator, wrapping your whole C environment in one go is an ambitious task. Take the time to build stable standard library, because all your subsequent programming will depend on it. C++ is the only other programming language capable of providing you instant access to your complete C programming environment. Flxcc cannot currently wrap C++ headers.

Subversion (SVN) access

To keep up to date, you need to connect to the SVN archive; the SVN address is https://felix.svn.sourceforge.net:/svnroot/felix/felix/trunk.

Subversion web access is available here.

make backup # if you have a previous checkout
rm -rf lpsrc
svn co https://felix.svn.sourceforge.net/svnroot/felix/felix/trunk

Thereafter you should be able to do:

make backup
cd lpsrc
svn update
cd ..

Continue after refreshing the archive with:

make virgin
make boot
make

and build documentation and install as required.

Mailing lists

  1. Language discussion
  2. Compiler implementation discussion

Contact

The principal developer is John Skaller

See also

Developer Info