Compiling DarkMod on 32 bit Linux ================================= For compilation under Linux, you need the following including their prerequisites: * SCONS * Python * libdevil-dev * libdevil1c2 In addition, when running Doom and using the DarkMod, you will also need: * libmng1 To actually compile, you can use the script: ./linuxBuild.sh If you have less than 2 Gbyte memory, you might want to remove the "-j2" switch from the scons line. This switch makes scons run two compiler in parallel, and this eats quite a lot of memory and can result in very strange compiling errors. Compiling DarkMod on 64 bit Linux ================================= If you run a 64 bit Linux distribution, you still need to build a 32 bit version of DarkMod, since Doom3 itself only exists as a 32 bit version. To get this to work, you will need to install the 32 bit compatibility libraries. Under some distributions like SuSE these are installed by default, but on Ubuntu/Kubuntu, you need to install the following: * ia32 or ia32-libs In addition to this, you will also need libdevil-dev, libmng1 and libdevil1c2. However, these libraries do not come in a compatibility version, only in different versions for each architecture. This means if you install them the regular way with your package manager, you will automatically get the 64 bit libraries (f.i. amd64) on your system and this will cause errors like the following: ... lib/bv/frustum_gcc.os -lIL /usr/bin/ld: skipping incompatible /usr/bin/../lib/libIL.so when searching for -lIL /usr/bin/ld: skipping incompatible /usr/bin/../lib/libIL.a when searching for -lIL /usr/bin/ld: skipping incompatible /usr/lib/libIL.so when searching for -lIL /usr/bin/ld: skipping incompatible /usr/lib/libIL.a when searching for -lIL /usr/bin/ld: cannot find -lI To avoid this, fetch the i368 .deb package files from http://www.rpmseek.com/ and unzip them manually: libdevil1c2_1.6.7-5_i386.deb libdevil-dev_1.6.7-5_i386.deb libmng1_1.0.9-1_i386.deb libstdc++6_4.3.2-2_i386.deb You might get slightly newer versions, but it should work. Note that this list doesn't include the -dev variants, you should be able to just install the matching 64 bit developer packages. Then, as root, copy all the files that are in these packages under ./usr to your /lib32 directory. Also, make sure that you rename the libstdc++6_4.3_..._.so etc. file to just the basename like so: /lib32/libstdc++.so Then run: ./linuxBuild.sh It will pick up the correct libraries. Likewise, when running, Doom3 will also use the right 32bit libraries. greebo: I had to install a few more packages to get TDM to compile in Ubuntu 8.10: libglew1.5-dev libc6-dev-i386 (to fix errors about gnu/stubs-32.h missing) Troubleshooting =============== Linker errors ------------- If you still get linker errors from ld, please make sure that the libraries can be found under the right name under /lib32. Also, running: su ldconfig might help. Scons errors ------------ If you get errors from scons like this: scons: *** object of type 'int' has no len() then delete the sqlite database file(s) might help: rm cons.signatures.dblite