On 06/24/2012 01:33 PM, Jesse Phillips wrote:
On Sunday, 24 June 2012 at 01:30:14 UTC, Chad J wrote:

No way it is that easy. My situation called for this:

src/web
src/phobos
src/druntime

I was and am not in Linux to look at my setup so I may have gotten the
names wrong but I know I don't have them start with src/ (hmmm, maybe it
has changed). The name for phobos didn't matter since that is where you
build from, and the make file did mention d-programming-language.org as
a directory so I just assumed. web I'm pretty sure is created by
building the docs, and I completely forgot to mention druntime.

dmd
linux/bin64/dmd -> ../../dmd/src/dmd
linux/bin64/dmd.conf (Copy this from a released zip file.)
linux/lib64/libphobos2.a ->
../../src/phobos/generated/linux/debug/32/libphobos2.a
linux/lib64/libdruntime.a ->
../../src/druntime/lib/libdruntime.a

dmd.conf may need editing.

This was all hidden under the "you'll have to convince your
environment to use the one you build though" I created a bash file to
call DMD providing the proper libraries. I've had issues with it though,
but hopefully I've convinced it to stop grabbing the system libraries I
have installed.

This really isn't a problem with the repositories though. The setup is
pretty simple, but ld will be looking in your system libraries first and
the repositories cannot mess with your environment.

Oh, but I think it is.

If you have all of the repositories tracked by a single repository that cements the directory structure of a D distribution, then you can streamline the build process. The makefile in the ./dmd/src should be able to place the compiler executable into ./<platform>/bin<arch>/dmd. Also, druntime and phobos makefiles should place their library files into ./<platform>/lib<arch>/*.*. dmd.conf and any other release requirements should also be included in this meta-repository. I should be able to sit at the toplevel of this meta-repository (./ that is) and type "make all" and end up with all of the contents that end up in a zip file in all of the places they end up in the zip file, plus website things. It should be everything needed to make a D release, minus the secret keys to actually write to the digitalmars.com website. With a setup like this, it would require /zero/ time to convince things to use the correct paths (aside from maybe editing your PATH variable once or running the installer that is hopefully also included in the meta-repo).


Reply via email to