As a cross-platform C++ library, VR Juggler must be compatible with the prevailing C++ compiler on a given platform. In the case of IRIX, that is SGI's MIPSpro Compilers. Similarly, the use of Microsoft Visual C++ is crucial on Win32 platforms. Open source operating systems such as FreeBSD and Linux use GCC, so we have not ignored that compiler whatsoever. Due to our limited needs, however, we have focused on compilers for the C, C++, Java, and IDL languages. Nothing prevents Doozer++ from being extended to allow compiling of code written in FORTRAN, Ada, Pascal, etc.
In Doozer++, an m4 macro sets up the basic platform-specific
pieces. User-level code (in an Autoconf
configure.in file) then uses that information to
execute other macros that pick the appropriate compiler. This builds
upon the foundation provided by Autoconf for detecting installed
programs, but it goes further by allowing users to associate one or
more compilers with a given platform. The end result is a
“fallback” system wherein users specify the preferred
compiler and zero or more alternatives if the preferred compiler is
not available. To achieve this flexibility, the Doozer++ m4 macros
must have no compiler-specific bits.