There is nothing special about GNU APL here: out-of-tree builds (aka.
"VPATH builds") work in the standard Autoconf/Automake way, with the
build directory anywhere you like.

The default build of GNU APL creates only the APL interpreter binary
aka. src/apl. This is assumed to be what the majority of GNU APL users
need in the first place.

This default build places all intermediate files - mostly .o files
from the corresponding .cc files into the same directory (src) as
the source files. If GNU APL is re-configured after the first build,
the intermediate files from the previous build are overwritten with
- possibly different - intermediate files having the same names and
this can, depending on the ./configure options that were used, lead to
a dubious mix of object files built with different ./configure options.

Also, if the same target, say src/apl, is built several times with
different ./configure options then the previous src/apl versions are
lost and the user has to (manually) copy them to some other place where
they are not overwritten.

An out-of-tree build avoids these complications: it places the object
files and the results (i.e. file apl, libapl.so, or lib_gnu_apl.so) into
a directory chosen (and created) by the user, leaving the source tree
untouched. Different configurations can then be built side by side, each
in its own build directory.

An out-of-tree build is performed like this:

    mkdir /path/to/my_build_directory
    cd /path/to/my_build_directory
    /path/to/gnu-apl/configure
    make

The source tree must not have been configured in place: if it has, then
./configure refuses an out-of-tree build until you run 'make distclean'
in the source tree.

An example for out-of-tree builds is the script build/build_all
