<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Am 27.02.2012 11:36, schrieb Iain Buclaw:<br>
<blockquote
cite="mid:CABOHX+cyFyJzWFPQjojgdxBh3BrUXdb5KsRF7Qk3fsBinPLi0Q@mail.gmail.com"
type="cite">
<pre wrap="">
I think that is fine for the structure of the build directories,
however I feel strongly that they should not be installed in such a
structure.
To take your example:
druntime
|-core
|---atomic.d (generic files)
|---bitop.d
|---[...]
|-gc
|-gcstub
|-rt
For the file structure below - when building for glibc, the make file
would have -I libdc/glibc in it's DFLAGS (or compile all relevant
sources in one go) - so libdc/glibc/core/stdc/stdio.d would still be
declared as 'module core.stdc.stdio;'
When running 'make install' - the build gets the correct sources and
puts them in their true locations.
|-libdc
|---glibc
|-----core // Installed in /usr/include/d2/core
|-------sys // Installed in /usr/include/d2/core/sys
|-------stdc // Installed in /usr/include/d2/core/stdc
|---bionic
|-----core // Installed in /usr/include/d2/core
|-------sys // Installed in /usr/include/d2/core/sys
|-------stdc // Installed in /usr/include/d2/core/stdc
|---newlib
|-----core // Installed in /usr/include/d2/core
|-------sys // Installed in /usr/include/d2/core/sys
|-------stdc // Installed in /usr/include/d2/core/stdc
The idea being that bionic/newlib packages are not shipped with glibc releases.
The complexity here would be a minor alternation to the way the
current build process is done, and will require *no change* in either
existing user code or how the druntime library is written.
Regards
</pre>
</blockquote>
That's what I meant when I wrote "compile in the correct directory".
Sorry, I should have explained that better.<br>
<br>
I think this is the best way to do this. I'll create a pull request
soon, although I'll probably wait till we migrated to git.<br>
<br>
BTW: We can actually use submodules to easily merge changes between
the different C libraries. I set up some test repositories to
demonstrate this:<br>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<a href="https://github.com/jpf91/test-gdc">https://github.com/jpf91/test-gdc</a>
is the base directory of druntime. It has got the<br>
|-libc<br>
|---glibc<br>
|---bionic<br>
<br>
structure, but glibc and bionic are submodules. The actual code for
those is in<br>
<a class="moz-txt-link-freetext" href="https://github.com/jpf91/test-libc">https://github.com/jpf91/test-libc</a> and 'bionic' and 'glibc' are
linked to the matching branches in test-libc.<br>
<br>
To checkout:<br>
git clone git://github.com/jpf91/test-gdc.git<br>
git submodule init<br>
git submodule update<br>
<pre class="moz-signature" cols="72">--
Johannes Pfau</pre>
</body>
</html>