<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>