@build(8)


NAME
     @build, @clone, @ls, @make, @sh - manage build trees

SYNOPSIS
     @build [command [arg ...]]
     @command [arg ...]

DESCRIPTION
     @build executes a command in  the  build  tree.   The  build  tree  is  a
     directory  full  of links to the files in the current directory, the name
     of this directory is found by replacing the  first  src  in  the  current
     working   directory  in  build.   So  /usr/src  becomes  /usr/build,  and
     /usr/local/src becomes /usr/local/build.

     These build trees, or "link farms" as they are often called, are used  to
     keep  the object files and executables out of the source tree to keep the
     source tree clean.

     The major disadvantage of link farms is that links are easily  broken  by
     changes in the source tree, sometimes by too smart editors, or by running
     patch(1).  When that happens clone(1) needs to be run from the build tree
     with the source directory name as its argument.  @build offers to do this
     for you if the build (sub)directory doesn't exists.

     @build is normally linked to the  names  @make,  @sh,  @ls,  and  @clone.
     These  @cmd  commands  are  simply shorthands for @build cmd, except that
     @clone is special, it gets the source directory as its argument if called
     without arguments.

SEE ALSO
     clone(1).

BUGS
     Shell metacharacters are expanded more than once.

AUTHOR
     Kees J. Bot (kjb@cs.vu.nl)