Building DMD
These instructions are for those who are adventurous and wish to try out the latest development (unstable!) version of D, and for developers who wish to contribute to D development. If you're looking for a stable version of D, please download the official releases instead.
Contents
Getting the sources
The source code for the D compiler, runtime library, and standard library are available on GitHub. To build a working D compiler toolchain, you will need to checkout at least dmd, druntime, and phobos.
Source code structure
The D source code assumes a particular directory structure, which you probably would want to adopt so that you don't have to fiddle with the Makefiles all the time.
Posix
For Posix, it is assumed that you will have a common root directory where the compiler and library sources will sit under. For example, you can choose the common root directory to be /usr/src/d, then you can checkout the sources under this directory:
% mkdir /usr/src/d % cd /usr/src/d % git clone git://github.com/D-Programming-Language/dmd.git % git clone git://github.com/D-Programming-Language/druntime.git % git clone git://github.com/D-Programming-Language/phobos.git
Note that if you're planning to submit pull requests, you should replace the above URLs with the URLs for your fork of the official sources, not the official sources themselves.
You should end up with this directory structure:
/usr/src/d/ /usr/src/d/dmd /usr/src/d/druntime /usr/src/d/phobos
Windows
TBD
Building the sources
Posix
Assuming your sources are checked out in /usr/src/d, you can do the following to build them:
% cd /usr/src/d/dmd/src % make -f posix.mak % cd ../../druntime % make -f posix.mak % cd ../phobos % make -f posix.mak
Note that the compiler, runtime library, and standard library have to be built in that order, as each depends on the previous one.
If you're using a 64-bit platform, you may want to append "MODEL=64" to your make commands, as the default makefiles will build for 32-bit:
% cd /usr/src/d/dmd/src % make -f posix.mak MODEL=64 % cd ../../druntime % make -f posix.mak MODEL=64 % cd ../phobos % make -f posix.mak MODEL=64
Windows
TBD