Difference between revisions of "Building DMD"

From D Wiki
Jump to: navigation, search
m (Posix)
m (Posix: extraneous space)
Line 77: Line 77:
  
 
for a machine with 4 cores.
 
for a machine with 4 cores.
 
  
 
After building, you should have a working D compiler in /usr/src/d/dmd/src/dmd. You may need to edit dmd.conf so that the compiler can find druntime and phobos. ('''TBD''': expand on this)
 
After building, you should have a working D compiler in /usr/src/d/dmd/src/dmd. You may need to edit dmd.conf so that the compiler can find druntime and phobos. ('''TBD''': expand on this)

Revision as of 06:12, 11 December 2012

If you're looking for a stable version of D, you probably want to download the official releases. This page is for those who want to try out D on platforms that aren't yet officially supported, those who are adventurous and wish to try out the latest development (unstable!) version of D, and developers who wish to contribute to D development.

Getting the sources

Official releases

The official release of DMD is available from the official download page.

Latest git

This is for those who want to test or contribute to the development version of D. The latest 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: 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

Parallel make can drastically speed up compilation times. The -j<integer> option allows you to specify the number of job slots. Number_of_cores + 1 is a often a good choice E.g.:

make -f posix.mak -j5

for a machine with 4 cores.

After building, you should have a working D compiler in /usr/src/d/dmd/src/dmd. You may need to edit dmd.conf so that the compiler can find druntime and phobos. (TBD: expand on this)

Windows

TBD