www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - guide for building DMD/Phobos from SVN (on Linux)?

reply Graham Fawcett <fawcett uwindsor.ca> writes:
Hi folks,

Is there a guide somewhere on building DMD/Phobos from SVN? I wanted
to try my hand at fixing a few bugs, but I suspect the environment I
built is broken.

On a Linux box, I checked out dmd, druntime and phobos from SVN;
twiddled the makefiles to fix paths; built them in that order; and set
up my dmd.conf. Everything seems to work okay at first: a simple
hello-world program compiles and executes properly. But if I compile
it with '-unittest', I get a series of messages like this:

/home/graham/dmd/druntime/trunk/src/core/thread.d(758): volatile 
statements deprecated; used synchronized statements instead

Have I done something wrong? Any general pointers or advice?

Thanks,
Graham
Jun 24 2010
parent reply Sean Kelly <sean invisibleduck.org> writes:
The weird thing about building phobos is that it depends on druntime being
accessible.  I publish everything to /usr/local/include/d and /usr/local/lib. 
I have a script at the top-level of each SVN tree to take care of everything
for me.  Hopefully they'll clue you into what you're missing.


Here's the druntime one:


#!/bin/bash
sudo rm -f  /usr/local/include/d/object.*
sudo rm -fr /usr/local/include/d/core
pushd ./trunk
make -fposix.mak
popd
sudo mkdir -p /usr/local/include/d/core
sudo cp -f  ./trunk/import/object.*   /usr/local/include/d/.
sudo cp -fr ./trunk/import/core/*     /usr/local/include/d/core/.
sudo cp -f  ./trunk/lib/libdruntime.a /usr/local/lib/.


And here's the phobos one:


#!/bin/bash
sudo rm -fr /usr/local/include/d/std
sudo rm -fr /usr/local/include/d/etc
pushd ./trunk/phobos
make -flinux.mak DRUNTIME_PATH=/usr/local
sudo rm -f  /usr/local/lib/libphobos2.a
popd
sudo mkdir /usr/local/include/d/std
sudo mkdir /usr/local/include/d/etc
sudo cp -fr ./trunk/phobos/std/* /usr/local/include/d/std/.
sudo cp -fr ./trunk/phobos/etc/* /usr/local/include/d/etc/.
sudo cp -f  ./trunk/phobos/generated/posix/release/libphobos2.a /usr/local/lib/.


My dmd.conf looks like so:


[Environment]
DFLAGS=-I/usr/local/include/d -L-L/usr/local/lib
Jun 24 2010
parent Graham Fawcett <fawcett uwindsor.ca> writes:
Hi Sean,

On Thu, 24 Jun 2010 15:13:38 -0400, Sean Kelly wrote:

 Here's the druntime one:
 
 
 #!/bin/bash
 sudo rm -f  /usr/local/include/d/object.* sudo rm -fr
 /usr/local/include/d/core pushd ./trunk
 make -fposix.mak
 popd
 sudo mkdir -p /usr/local/include/d/core sudo cp -f 
 ./trunk/import/object.*   /usr/local/include/d/. sudo cp -fr
 ./trunk/import/core/*     /usr/local/include/d/core/. sudo cp -f 
 ./trunk/lib/libdruntime.a /usr/local/lib/.
 
 
 And here's the phobos one:
 
 
 #!/bin/bash
 sudo rm -fr /usr/local/include/d/std
 sudo rm -fr /usr/local/include/d/etc
 pushd ./trunk/phobos
 make -flinux.mak DRUNTIME_PATH=/usr/local sudo rm -f 
 /usr/local/lib/libphobos2.a popd
 sudo mkdir /usr/local/include/d/std
 sudo mkdir /usr/local/include/d/etc
 sudo cp -fr ./trunk/phobos/std/* /usr/local/include/d/std/. sudo cp -fr
 ./trunk/phobos/etc/* /usr/local/include/d/etc/. sudo cp -f 
 ./trunk/phobos/generated/posix/release/libphobos2.a /usr/local/lib/.
 
 
 My dmd.conf looks like so:
 
 
 [Environment]
 DFLAGS=-I/usr/local/include/d -L-L/usr/local/lib

Thank you! I haven't figured out what I was doing wrong yet, but using your build-scripts did the trick: my -unittest error is no more. Much appreciated! Graham
Jun 24 2010