This ability is an ugly hack on the pre-existing machinery, so don't expect either elegance or ease of use with this option: it is a last-resort kind of thing at best.
ATLAS has a routine that it builds called ./xccobj, which is a ``compiler'' for object files. Essentially, what it does is fake compilation, but instead it simply moves a pre-compiled .o into place during the install/tuning process. You can see the source for this routine in ATLAS/bin/ccobj.c.
This routine reads in some special ``compiler flags'' that you pass it in order to figure out what to do. The most important of these are:
-o <outfile>
: Same as with a compiler.
--objdir <objdir>
The directory where the object file to be
copied resides. The default is ATLAS/blas/gemm/CASES/objs.
--name <name>
The base name of the object file to be copied.
This name is suffixed by the appropriate beta suffix, as determined by the
usual BETA macro definition. Name has no usuable default, so it must be
specified.
-DBETA
or -DATL_BETA
. These are standard macros used
to specify which BETA case a particular kernel can handle. According to
this definition, a beta suffix will be added to the --name
basename
to find the object file to copy (this is to simulate all the beta cases
coming from the same C code, as in the normal case). The values, along with
their suffixes are:
-DATL_BETA0
_b0
-DATL_BETA1
_b1
-DATL_BETAX
_bX
-DATL_BETAXI0
_bXi0
ATL_BETA1
.
-DConj_
: If this macro definition is found, the name of the
routine to be copied is actually <name>c_<beta>
, and that routine
should supply the conjugate version of the kernel (simulates recompiling the
same source in order to get both normal and conjugate versions of routines).
The default is no conjugation.
Note that this macro is set automatically by the build process,
so the user would only set it manually when testing and timing by hand.