Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>One way is to have your project support a configuration mechanism (similar to the <code>./configure</code> script of Autoconf), such that it can be configured in a directory other than the source directory. Then you can configure and build it in different ways.</p> <p>Another way is to use the <code>lndir</code> tool to create symlinked build trees. This will instantly add multi-build capabilities to just about any project. The idea is that you have a mirror directory tree populated by symlinks to the original files in the original tree. The build system for the program is none the wiser (unless it does idiotic things like canonicalize paths, removing symlinks: maintainers of the Lisp build system ASDF, take note!). It accesses the files through the symlinks, but drops the objects locally. The nice thing is that the source directory can be completel pristine and even read only! And you can do better than a <code>make clean</code>: just blow off the <code>lndir</code> generated link farm to get to a completely pristine state.</p> <p>I used tricks like this to build a Linux distro for several architectures (all packages: glibc, gcc, apache, you name it).</p> <p>It all built from the same working copy; the same unpacked sources.</p> <p>Hacking this support into the project would be a last resort. If you enjoy the GNU Make language, go for it. Read the Info manual for GNU Make from beginning to end two or three times and off you go ... I know how, and I have done it that way too, but what's the point. It would take space to explain and isn't worth it.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload