Build instructions for new Tango structure
On November 10th 2009, Tango trunk changed its structure. Library construction is now handled by Bob, and there's a couple of variations for the various platforms:
windows
Use Bob, the build tool residing in build\bin\win32:
build\bin\win32\bob -vu -rdmd -cdmd <pathToTangoRoot>
Executing this will build a library including the userlibrary (-u) and with the dmd runtime (-r), using the dmd compiler (-c) for the win32 platform (-p), based upon the code residing in <pathToTangoRoot>. The resultant library will be tango.lib according to the -l switch, and progress will be displayed on the console (-v).
Object files will remain in the current directory when the quick (-q) flag is enabled, and will be reused where an object file is newer than the corresponding source file.
linux & freeBSD
Bob also works for 32 bit linux and freeBSD:
build/bin/linux/bob -vu -rdmd -cdmd <pathToTangoRoot>
to get a full library from the given Tango path.
Executing this will build a library including the userlibrary (-u) and with the dmd runtime (-r), using the dmd compiler (-c) for the linux platform (-p), based upon the code residing in <pathToTangoRoot>. The resultant library will be tango.a according to the -l switch, and progress will be displayed on the console (-v).
Object files will remain in the current directory - these will be reused when the quick (-q) option is specified and an object file is newer than the corresponding source file.
posix
From build/script/ the bob.sh or bob.rb scripts can be used to build a library. These should be easier to use where Tango has less support, or no binary bob. We appreciate help to bootstrap binary bob where otherwise the just mentioned scripts will run.
Bob options
[-v] verbose output [-q] quick execution [-i] inhibit execution [-u] include user modules [-rdmd|gdc|ldc] include a runtime target [-cdmd|gdc|ldc] specify a compiler to use [-gbasic|cdgc|stub] specity which garbage collector to use [-o"options"] specify D compiler options [-llibname] specify lib name (sans .ext) [-pwindows|linux] determines package filtering
The required <pathToTangoRoot> parameter should point to the directory where object.di, license.txt and readme.txt reside. If you get this path wrong, Bob will typically say "0 files" before quitting.