= Build Instructions using Phobos/Druntime trunk on Linux/OSX/FreeBSD/Solaris = After LDC for D2 has been build, we can now set up a working LDC environment. * Fetch&Compile Phobos/Druntime: {{{ cd ldc/ git clone https://github.com/AlexeyProkhin/phobos git clone https://github.com/AlexeyProkhin/druntime cmake -DRUNTIME_DIR=./druntime -DPHOBOS2_DIR=./phobos . make phobos2 }}} * Setup target directory for installation (root access required): {{{ mkdir /opt/ldc2 mkdir /opt/ldc2/bin mkdir /opt/ldc2/import mkdir /opt/ldc2/lib }}} * Install the ldc2 binary and phobos/druntime library {{{ cp bin/ldc2 bin/ldmd2 bin/ldc2.conf /opt/ldc2/bin cp lib/libdruntime-ldc.a lib/liblphobos2.a /opt/ldc2/lib cp -r druntime/ phobos/ /opt/ldc2/import cp -r runtime/import/ldc /opt/ldc2/import }}} * Change the contents of /opt/ldc2/bin/ldc2.conf to: {{{ default: { switches = [ "-I%%ldcbinarypath%%/../import", "-I%%ldcbinarypath%%/../import/druntime/import", "-I%%ldcbinarypath%%/../import/phobos", "-L-L%%ldcbinarypath%%/../lib", "-defaultlib=lphobos2", "-debuglib=lphobos2" ]; }; }}} * Done! :D '''Notes:''' * "object.d: Error: module object cannot read file 'object.d'"; This error indicates that your ldc2.conf is wrong; you may have a stale ldc2.conf around that is used by ldc2 instead.[[BR]] To check for other ldc2.conf files on your system you can do "find / -iname "ldc2.conf"". Or put a syntax error into ldc2.conf; if ldc2 isn't complaining, it's using a different ldc2.conf file. * You can install ldc2 in some other directory, of course, but you need to adjust some paths! ---- '''Playtime''' * Create a file called main.d: {{{ import std.stdio; void main() { printf("Hello World!\n"); } }}} * Compile it to verify that LDC with Phobos is working: {{{ export PATH=/opt/ldc2/bin:$PATH ldc2 main.d ./main }}}