Download Reference Manual
The Developer's Library for D
About Wiki Forums Source Search Contact

Unix packaging

To make install tools and packages in the Tango sphere share as much common ground as possible, this is an attempt in standardizing how and where to install. Where applicable, we will use existing standards like the Filesystem Hierarch Standard (http://www.pathname.com/fhs/).

Layout

dmd

  • /etc/dmd.conf
  • /usr/bin/dmd

DMD 2

  • /etc/dmd2.conf
  • /usr/bin/dmd2

gdc

Note that the following makes an assumption on the GCC version GDC is based on.

  • /usr/bin/gdc
  • /usr/bin/gdmd
  • /usr/include/d/4.1.2/*
  • /usr/lib/libgphobos.a

llvmdc

  • TBD

dmd-tango-devel

  • /etc/dmd.conf
  • /usr/include/d/tango/*
  • /usr/lib/libtango-base-dmd.a
  • /usr/lib/libtango-user-dmd.a

gdc-tango-devel

  • /usr/include/d/4.1.2/*
  • /usr/lib/libgphobos.a (to be renamed to "libtango-base-gdc.a")
  • /usr/lib/libgtango.a (to be renamed to "libtango-user-gdc.a")

phobos aka tangobos

Note that this document is mainly about Tango and the compilers, and Phobos will not be part of the packages downloaded from our pages. Thus we may not worry too much about Phobos as Phobos, but instead Tangobos, which then is just another user library. Since the nature of Tangobos is such that it may conflict with minor parts of Tango, we want the inclusion to be explicit via an additional -I invocation.

  • /usr/include/d/tangobos

As it is though, the layout doesn't preclude Phobos from being installed, and the following paths should be used to avoid conflicts.

  • /usr/include/d/phobos/*
  • /usr/lib/libphobos.a

or for D 2.0 Phobos

  • /usr/include/d/phobos2/*
  • /usr/lib/libphobos2.a

Notes

Anders F. Björklund did some packages for dsss / rebuild, maybe also should have like "dmd-tango" and "gdc-tango" to include all necessary switches ?

Both any needed -I and -L flags, to find the installation directory, and any versions/libs like: -fversion=Tango -fversion=Posix -lgtango

In the above, an install with Tangobos would require at least 3 -I invocations, one for Tango, one for Tangobos and one for the rest. Now, this sounds a bit silly, and this is not the way it is with current Tango downloads where Tango is installed at the root ( /usr/include/d or /usr/local/include/d) in the assumption that you didn't install Phobos in the same place. Of course, when Tango is in /usr/include/d/tango then Tangobos could be at the root /usr/include/d without causing conflicts, as long as Tango's -I switch appears first on the command line.