Mnemonic Compiling from sources
General Info

Introduction
Screenshots
Mailing Lists and IRC
Alternative Browsers
Special Thanks

FAQ
Understanding Mnemonic
TODO list and ideas
Bug Reports


User Info

Download binaries
Platforms
Compiling Mnemonic
Other useful software


Developer Info

Core
Message modules
Library modules
Object modules
Coding Guidelines
Browse Source
Using CVS


View with any browser

Website questions to:
webmaster@mnemonic.org

Mnemonic questions to:
disc@mnemonic.org

 

The current state of the Mnemonic sources

Mnemonic is work in progress. We try to keep the source tarball and CVS tree in a state such that you can compile the lot without compiler errors, but this is not always possible. When it doesn't work for you, contact the mailing lists or simply wait a few days and try again.

The current plan is to start providing binary releases and stable source snapshots during the 1999 Christmas break.

Requirements

You need a fairly up to date system to compile Mnemonic. The most important things are:

  • gcc-2.95 or higher
    check this with the "g++ -v" command

    Older versions have various small problems, avoid them.

    Note: egcs has become the official GNU compiler and is now called gcc.

  • binutils-2.9.1
    check with the "ld -v" command

  • automake-1.4
    check with the "automake --version" command. You can probably get away with a lower version if you do not use any modules that depend on glib, gtk+ or gtk--.

  • autoconf-2.13
    check with the "autoconf --version" command

  • glibc-2.1 (aka libc6.1)
    You now need glibc to run Mnemonic, there are simply too many bugs in libc5. You can install glibc on a machine which runs libc5, but that's not for the faint of heart. Better upgrade your distribution.

    The 2.0.x series has a serious problem with dlopen and (in particular on non-intel architectures) show stopping problems with threads. So you have to use glibc-2.1. Be very careful if you install this yourself.

  • libtool-1.3.2
    to compile glib, gtk+ and gtk--. check with the "libtool --version" command.

  • gettext-0.10.35
    to compile glib, gtk+ and gtk--. Check with the "gettext --version" command.

  • glib-1.2.7 or higher
    only for the gui modules. Check with the "glib-config --version" command. Versions lower than 1.2.7 have a show-stopping threading bug.

  • gtk+-1.2.7 or higher
    only for the gui modules. Check with the "gtk-config --version" command. Versions lower than 1.2.7 have a show-stopping threading bug.

  • Gtk--1.2.1 or higher
    only for the gui modules. Check with the "gtkmm-config --version" command. Versions 1.0.x are incompatible. Note that you need at least release 1.2.1; 1.2.0 contains a show-stopping bug.

  • T1-lib 1.0.0 or later
    only for the gui modules. This library is used for anti-aliased fonts and can be omitted if you are compiling mnemonic yourself (autoconfig will then disable anti-aliased fonts).

  • threadsafe X11
    Almost all recent Linux distributions have threadsafe X11 libraries, but if you get funky X IO errors when running Mnemonic you may want to check with your distributor.

Getting the sources

At the moment, you can either get the sources directly from CVS (which is recommended) or you can get a tarball Mnemonic-latest.tar.gz which is actually a copy of the current CVS tree.

Compiling

Doing ./configure [options] in the root sets up the makefiles. The available options (apart from the usual ones):

--with-ssleay=DIR
Use an uninstalled copy of SSLeay (if you have SSLeay libraries installed in one of the locations searched by g++ they will be found automatically and you do not need this option). DIR should point to the location of the libssl.a library.
--with-ssleay-includes=DIR
If the SSL include files are not in the `include' subdirectory of the root of the SSL tree (as specified with the previous option), you can give an alternative directory here.
--enable-debug
Enable the mnemonic debugging system. Very useful if you want to be able to send us bug reports.
--prefix
Use it!

It is highly recommended that you use a separate subtree to install mnemonic, using the `--prefix' option of the configure program. Our makefiles currently do not have an `uninstall' target.

In order for the libraries to be picked up, you must add $prefix/lib and $prefix/lib/mnemonic/msg to your LD_LIBRARY_PATH environment variable. This should be done before you attempt to build/install. The object modules in $prefix/lib/mnemonic/oil will be found automatically, you do not have to add this directory to the search path.

Now do make install and have a coffee. You can compile and test individual modules before installing them, but the above is a shorthand that compiles and installs every module in turn, taking care of dependencies (that's also why you need to have the LD_LIBRARY_PATH set before you do the make). On a Pentium II/233 with 96 Mb the entire `make install' takes about 15 minutes. The C++ compiler uses quite a bit of memory, so you probably don't want to do this with less than 32 Mb.

The browser window can be popped up by sending an appropriate message to the mnemonic object core. Running msg_run_client does the trick (running mnemonic does the same thing). There are also several test and demo programs in the various module directories which do not, however, get installed.

If you encounter any problems, please let us know by posting to one of the mailing lists.

Additional software

In line with the Unix philosophy, mnemonic does not try to be one big tool which tries to do everything by itself. A basic mnemonic installation as described above will work, but performance and functionality will be much better if you install some additional software written by other people. Please take a look at the page on additional useful software.