next up previous
Next: 5.8.3 Implementing asynchronous event Up: 5.8 Problems Encountered Previous: 5.8.1 C++ environment

5.8.2 Unsuitable libraries and tools -- autoconf, automake, imlib, graphapp and xlib

The requirement that the system be as cross-platform as possible induced the initial decision on some tools for cross-platform development and cross-platform libraries. These would also allow the development to proceed at several different sites, rather than the main SGI IRIX site at Sydney Vislab.

The cross-platform development tools desired were GNU autoconf and automake. These are tools which support a system of automatic and cross-platform Makefile generation. They have built-in functions to automatically deduce, use and if required, work-around various quirks in operating system, libraries, tools and so on. They are used in all major GNU projects and many other free and open source projects. However, they also add substantial complexity to all aspects of the Makefile and making the system, and introduce several additional steps to any full build of the system. Ultimately, this was not a goal of the system, and so was abandoned.

Originally, the cross-platform image representation and processing library, imlib, was chosen as the image library of choice. Imlib is very in some respects, but is not particularly suited to C++ programming, or to the kinds of processing desired for this system. In addition, imlib has issues when compiling on IRIX.

The graphapp library is a wrapper library around the native X11 xlib library. It simplifies issues in X11 programming greatly, and exists on X11, Windows and Macintosh platforms, and so it was hoped that it could provide the basis for the image handling sections of the system. Unfortunately, it is substantially less featured than the ImageVision library, and so eventually was removed in favour of a complete ImageVision solution.


next up previous
Next: 5.8.3 Implementing asynchronous event Up: 5.8 Problems Encountered Previous: 5.8.1 C++ environment
Kevin Pulo
2000-08-22