I originally developed 3DLDF on a DECalpha Personal Workstation with two processors running under the operating system Tru64 Unix 5.1, using the DEC C++ compiler. I then ported it to a PC Pentium 4 running under Linux 2.4, using the GNU C++ compiler GCC 2.95.3, and a PC Pentium II XEON under Linux 2.4, using GCC 3.3. I am currently only maintaining the last version. I do not believe that it's worthwhile to maintain a version for GCC 2.95. While I would like 3DLDF to run on as many platforms as possible, I would rather spend my time developing it than porting it. This is something where I would be grateful for help from other programmers.
Although I am no longer supporting ports to other systems, I have left some conditionally compiled code for managing platform dependencies in the CWEB sources of 3DLDF. This may make it easier for other people who want to port 3DLDF to other platforms.
Currently, the files
pspglb.web contain conditionally compiled code, depending on
which compiler, or in the case of GCC, which version of the compiler, is
used. The DEC C++
compiler defines the preprocessor macro
__DECCXX and GCC defines
__GNUC__. In order to
distinguish between GCC 2.95.3 and GCC 3.3, I've added the macros
should be defined or undefined, depending on which compiler you're
using. In the distribution,
LDF_GCC_3_3 is defined and
LDF_GCC_2_95 is undefined, so if you want to try using GCC 2.95, you'll
have to change this (it's not guaranteed to work).
3DLDF 18.104.22.168 now uses Autoconf and Automake, and the
configure script generates a
config.h file, which is now
loader.web. Some of
the preprocessor macros defined in
config.h are used to
conditionally include library header files, but so far, there is no error
handling code for the case that a file can't be included. I hope to improve the
way 3DLDF works together with Autoconf and Automake in the near future.
3DLDF 1.1.5 is the first release that contains template functions. Template instantiation differs from compiler to compiler, so using template functions will tend to make 3DLDF less portable. See Template Functions, for more information. I am no longer able to build 3DLDF on the DECalpha Personal Workstation. I'm fairly sure that it would be possible to port it, but I don't plan to do this, since Tru64 Unix 5.1 and the DEC C++
compiler are non-free software.