== 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 }}} 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 . 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 }}} 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 . 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 '''''' 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.