Building XFree86 from a Source Distribution : Using a shadow directory of symbolic links for the build
Previous: Configuring the source before building
Next: Building and installing the distribution

## 3. Using a shadow directory of symbolic links for the build

A recommended practice is to use a shadow directory of symbolic links to do the build of XFree86 as this allows you to keep the source directory unmodified during the build. It has the following benefits:

- When you are using CVS to maintain your source tree, the update process is not disturbed by foreign files not under CVS's control.
- It is possible to build XFree86 for several different Operating System or architectures from the same sources, shared by read-only NFS mounts.
- It is possible to build XFree86 with different configuration options, by putting a real copy of the `host.def` file in each build tree and by customizing it separately in each build tree.

To make a shadow directory of symbolic links, use the following steps:

- create the directory at the top of the build tree. It is often created at the same level that the `xc` directory, but this is not mandatory.

  > `cd the directory containing the xcdirectory
  > mkdir build`

- use the "`lndir`" command to make the shadow tree:

  > `lndir ../xc`

  Note that you can refer to the `xc` directory with an absolute path if needed.

  See the lndir(1) manual page for details.

If `lndir` is not already installed on your system, you can build it manually from the XFree86 sources by running the following commands:

> `cd xc/config/util
> make -f Makefile.ini lndir
> cp lndir some directory in your PATH`

Occasionally there may be stale links in the build tree, like when files in the source tree are removed or renamed. These can be cleaned up by running the "`cleanlinks`" script from the build directory (see the cleanlinks(1) manual page). Rarely there will be changes that will require the build tree to be re-created from scratch. A symptom of this can be mysterious build problems. The best solution for this is to remove the build tree, and then re-create it using the steps outlined above.

Building XFree86 from a Source Distribution : Using a shadow directory of symbolic links for the build
Previous: Configuring the source before building
Next: Building and installing the distribution