[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: HALLD_MY?




Hi Mark,

    The HALLD_MY variable is used to simultaneously define the first 
search path for both include files and libraries and an alternate 
install path to use instead of HALLD_HOME. Note that HALLD_HOME must be 
set, even when using HALLD_MY. The BMS makefiles are always referenced 
through HALLD_HOME and the second search path for include files and 
libraries comes from HALLD_HOME.

    The primary intent is to allow you to have a full, standard build in 
HALLD_HOME, but then have one or two libraries that you customize in a 
private area. Note that the source for the private libraries can reside 
anywhere and need not be in the HALLD_MY directory structure. You pretty 
much just want to set HALLD_MY to the directory you want the customized 
binaries and headers installed in.

    As an example, assume you have a standard build in $HALLD_HOME. You 
can set your HALLD_MY to point to something like ~/FDCtest and then copy 
a library you want to tweak into ${HALLD_MY}/src/FDC. Invoking "make" in 
the ${HALLD_MY}/src/FDC will then build the library and copy the header 
files and libFDC.a archive into ${HALLD_MY}/include and 
${HALLD_MY}/lib/${OSNAME} respectively. Then, going into something like 
the hd_root source directory in the $HALLD_HOME source tree and doing a 
"make relink" will cause the program to be relinked, but using your 
private FDC library and installing it in ${HALLD_MY}/bin/${OSNAME}. If 
you unset the HALLD_MY enviro. variable, and once again invoke "make 
relink", it will link against the standard FDC library and install in 
the standard HALLD_HOME directory tree.

    The biggest gotcha here is that since the binaries make uses for 
targets are kept in sub directories of the source code itself (.bin, 
.lib, and .obj), you can easily trick make into thinking things are up 
to date when switching back and forth from using HALLD_MY. It is not a 
bad idea to do a "make clean" first when switching back and forth from 
using HALLD_MY.

    The HALLD_MY variable is ever so slightly documented in 
GlueX-doc-473-v1 "BMS:Build Management System".

Regards,
-David


Mark M. Ito wrote:
> There is some sort of system for building private libraries. How does 
> this work?
>

-- 

------------------------------------------------------------------------
  David Lawrence Ph.D.
  Staff Scientist                 Office: (757)269-5567   [[[  [   [ [       
  Jefferson Lab                   Pager:  (757)584-5567   [  [ [ [ [ [   
  http://www.jlab.org/~davidl     davidl@jlab.org         [[[  [[ [[ [[[
------------------------------------------------------------------------