=== Compiling 64-bit boost static libraries (with -fPIC) === Get the Boost 1.57 sources from their website and extract it to somewhere. Run the bootstrap script to build the bjam binary: ./bootstrap.sh Then compile the needed libraries: bjam release link=static threading=multi address-model=64 runtime-link=static cxxflags='-fPIC' stage /boost/chrono /boost/date_time /boost/filesystem /boost/program_options /boost/regex /boost/system /boost/thread I had to scrap the various .a files together from the bin.v2 folder, get the following libs and copy them to darkmod_src/linux/boost/lib64 libboost_program_options.a libboost_regex.a libboost_system.a libboost_thread.a libboost_chrono.a libboost_date_time.a libboost_filesystem.a === Compiling 64-bit PolarSSL with -fPIC === PolarSSL is needed by libcurl to download stuff from SSL-secured sites. Get the polarSSL 1.3.7 from their website. Get cmake: sudo apt-get install cmake Add the line to the CMakeLists.txt, after the compiler checks part: set(CMAKE_POSITION_INDEPENDENT_CODE ON) Then build the library: cmake . make sudo make install This will place libpolarssl.a in your /usr/local/lib folder. Copy it to linux/polarssl/lib64/ === Compiling the static libcurl library === ==== Building the static 32-bit library libcurl ==== Download the libcurl 7.39 source package, and extract it on your system, then run the following commands: env CFLAGS="-m32" LDFLAGS="-m32" ./configure --disable-ldap --build=i686-unknown-linux-gnu --without-ssl --with-polarssl --without-libidn --without-zlib --prefix=/home/greebo/curl_install_x86 make jobs=8 sudo make install The library is then located in /home/greebo/curl_install_x86/lib/libcurl.a. Copy that to darkmod_src/linux/libcurl/ ==== Building the static 64-bit library libcurl ==== Download the libcurl 7.39 source package, and extract it on your system, then run the following commands: env CFLAGS="-m64 -fPIC" LDFLAGS="-m64" ./configure --disable-ldap --build=i686-unknown-linux-gnu --without-ssl --with-polarssl --without-libidn --without-zlib --prefix=/home/greebo/curl_install_x64 make jobs=8 make install The library is then located in /home/greebo/curl_install_x64/lib/libcurl.a. Copy that to darkmod_src/linux/libcurl/lib64/ == Compiling on OSX == The XCode projects are out of date at the moment and will need fixing. === Building libcurl in Mac OS X === Download the libcurl 7.21 source package, and extract it on your system. To produce a so-called "fat" binary you need to compile for both i386 and ppc targets. Build the i386 target by entering: env CFLAGS="-m32 -arch i386" LDFLAGS="-m32 -arch i386" ./configure --disable-ldap --build=i686-unknown-linux-gnu --without-libidn --without-zlib --without-ssl make sudo make install After make install the static library can be found in /usr/local/lib/libcurl.a, copy that file to your curl folder and rename it to ./libcurl.i386.a Build the powerpc target by entering: env CFLAGS="-m32 -arch ppc" LDFLAGS="-m32 -arch ppc" ./configure --disable-ldap --build=powerpc-unknown-linux-gnu --without-libidn --without-zlib --without-ssl make sudo make install After make install the static library can be found in /usr/local/lib/libcurl.a, copy that file to your curl folder and rename it to ./libcurl.ppc.a Finally call lipo to combine these two into a fat binary by entering this in your curl folder. lipo -arch i386 libcurl.i386.a -arch ppc libcurl.ppc.a -create -output libcurl.a The filesize of the newly created libcurl.a should be around the sum of the single ppc and i386 libs, you can double-check that. Copy the libcurl.a into your darkmod_src/macosx/libcurl/ and you're done with this step. === Building Boost static libs in Mac OS X === Download the boost 1.45 sources and extract them to your hard drive. Create a jam user config file to use the g++ 4.0 compiler instead of the default gcc 4.2 in Leopard: create a new file in your boost root folder and name it user-config-darwin.jam: using darwin : 8.11 : /usr/bin/g++-4.0 : "combined" "32" "10.4" "10.4" "static" "multi" ; Download a bjam binary for OS X to your machine, then build boost threads, filesystem and system: /path/to/bjam --user-config=../../../user-config-darwin.jam architecture=combined link=static threading=multi address-model=32 release [stage] The "stage" option only works in filesystem and system (not in thread, as of boost 1.45). You'll find the filesystem and system libs in the ./stage folder of your boost root, the libboost_thread.a will be located in the bin.v2 folder after compilation. Copy all libboost*.a files to darkmod_src/macosx/boost/lib/.