[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 [[[ [[ [[ [[[
------------------------------------------------------------------------
- References:
- HALLD_MY?
- From: "Mark M. Ito" <marki@jlab.org>