These are instructions to help build Eris, the WorldForge client-side entity framework. For a more complete discussion of the functions and goals of Eris, please see the README file, which should be in the same directory as this document. The AUTHORS file lists people who can help you if you run into problems; otherwise you can try the WorldForge mailing lists (note you must be subscribed to post) or IRC at irc.worldforge.org, in channels #coders and #eris. Linux / Unix You need to have Atlas-C++, skstream, wfmath and libsigc++ to build Eris. In addition it is assumed you have an up-to-date C++ compiler and STL implementation. If you find other compilers that work or fail, please let me (James) know. Atlas-C++, skstream and WFMath are available as tarballs (and possibly compiled packages, depending on your system) from ftp.worldforge.org. The Eris configure script will test for the appropriate minimum versions. Note that officially released tarballs will only require released versions of the dependant libraries, but at times the CVS version will depend on unstable (i.e from CVS) libraries. libSigC++ is available for almost all distributions, though possibly in the set of additional or extra packages. As a convenience, we provide source and binary rpms from various current distributions in the 'third-party' directory on ftp.worldforge.org. Otherwise get the library in your preferred format from: http://libsigc.sourceforge.net/ Due to variations in the C++ ABI, do NOT use a binary version compiled for a distribution other than your own; you may be able to compile code but then fail at link-time or run-time with very unpleasant errors. This includes differences in the C library version, the compiler itself, and the standard C++ library. You can test your installation by running the following command from a shell: pkg-config --modversion sigc++-2.0 This should print out the libSigC++ version number; if pkg-config reports that the sigc package is unknown, you are probably missing the development package, or if you installed from source, installed to some location that pkg-config doesn't know about (you may need to set the PKGCONFIG_PATH environment variable) If Gtk-2.x is detected, Eris will build a Poll implementation that integrated directly with the Gtk mainloop, so if you are planning to work on a Gtk-2 based client, make sure Gtk-2 is installed before you build Eris. Once these pre-requisites are satisfied, you can proceed with compiling Eris. This should be a standard 'configure; make; make install'. At present there are no special arguments, but verify everything goes okay. If you get errors about libraries not being found, and you believe they are installed, do NOT hack around the problem in configure. Verify that you have the correct development packages installed and that pkg-config has located the configuration files for each library. Also make sure you've run ldconfig if you just installed the libraries form source, otherwise the test programs configure tries to compile won't work. Assuming configure is successful, simply 'make' and 'make install'. You can also run 'make check' to build and run the unit-tests, which should print out some debug output followed by 'all tests passed'. If the tests fail, or you get compilation errors, please get in touch with the maintainers. If you have Doxygen installed, executing 'make doc' will build the documentation; at present only HTML is built. Edit eris.dox to change the output formats / styles. If you find errors or omissions in the documentation, please let me (James) know. MSVC This might work, though you'll need to link libSigc++ statically. Using VC .NET may help, since the C++ compiler is greatly improved. If you try to compile using MSVC, please let me know, whatever the outcome, so I can update this section OS-X / XCode A autoconf based build will work fine, assuming you have pkg-config and the like available (for example, from Fink). Fink also provides a libSigc++ package. The easier way, on OS-X, is to use the XCode project to build an Eris framework. If you choose to persue this approach, be aware you need to build all the WorldForge libs as frameworks too : this requires some setup, but works very well once it's done.