BRAT update (2.1.15) - buildsystem

From: Christian Holm Christensen (cholm@hehi03.nbi.dk)
Date: Thu Oct 25 2001 - 17:27:03 EDT

  • Next message: Flemming Videbaek: "bramreco - jobs and mail on RCF"

    Hi all, 
    
    A new BRAT: 
    
      Version:  2.1.15
      CVS tag:  BRAT-2-1-15 
    
    >From the changelog:
    -------------------
    2001-10-25  Christian Holm Christensen  <cholm@rcas0009.rcf.bnl.gov>
    
    	* util/Makefile.am, test/Makefile.am, modules/vertex/Makefile.am, modules/util/Makefile.am, modules/track/Makefile.am, modules/test/Makefile.am, modules/rdo/Makefile.am, modules/raw/Makefile.am, modules/pid/Makefile.am, modules/io/Makefile.am, modules/evdisp/Makefile.am, modules/digitize/Makefile.am, modules/centrality/Makefile.am, modules/calib/Makefile.am, managers/Makefile.am, help/configure.in, help/Makefile.am, doc/guide/bratguide.tex, db/test/TestMainDb.cxx, db/test/Makefile.am, db/apps/Makefile.am, db/Makefile.am, data/vertex/Makefile.am, data/track/Makefile.am, data/raw/Makefile.am, data/pid/Makefile.am, data/params/Makefile.am, data/geant/Makefile.am, data/geant/BrGeantTrack.cxx, data/centrality/Makefile.am, data/calib/Makefile.am, data/abc/Makefile.am, config/xpm.m4, config/root.m4, config/latex2html.m4, config/latex.m4, config/debug.m4, config/config.mk, config/Makefile.am, applications/dump/Makefile.am, applications/bratroot/Makefile.am, applications/bratmain/Make!
    file.am, configure.in, acinclude.m4, README, Makefile.am:
    	Changes to the build system:
    
    	* modules/centrality/BrTileCentModule.h, modules/centrality/BrTileCentModule.cxx, modules/centrality/BrSiCentModule.h, modules/centrality/BrSiCentModule.cxx:
    	Removed unused classes
    
    	* README:
    	No longer documents build/install/develop but contains notes only
    
    	* data/abc/BrValueObject.h, data/abc/BrValueObject.cxx:
    	Removed unused class
    ----------------------------------------------------------------------
    
    This just sneaked in under the tag:
    -----------------------------------
    2001-10-25  Flemming Videbaek, BNL, x4106  <videbaek@rcas0009.rcf.bnl.gov>
    
    	* modules/track/dc/BrDCTrackingModule.cxx, modules/track/dc/BrDCViewLis\t.cxx:
    		Make volume listing dependent of DebugLevel.
    	Initialize the fNumView private memberrs in constructor.
            The Clear() method could randomly fail.
    ----------------------------------------------------------------------
    
    
    
    The major change is to the buildsystem:
    
    Changes to the build system:
    ----------------------------
    Each library, except the basic libraries, now incremental links to it's
    needed ROOT libraries.  The basic libraries link to the basic ROOT
    libraries, and in addtion also sets the RPATH on linked applications,
    to contain the path to the ROOT libraries.  In this way, one never
    needs to set the environment variable LD_LIBRARY_PATH.  The basic BRAT
    libraries are:
       libBratDataAbc.la
       libBratManagers.la
       libBratUtil.la
    All other libraries requires these libraries (note, that
    libBratModuleAbc.la is not a basic library, since it needs the data abc
    library).
    
    For the internal builtsystem of BRAT, this matters little. In fact, it
    makes the builtsystem much cleaner.
    
    For the runtime environment of BRAT it matters a lot - no need to set
    environment varaiables.
    
    For client code (code that uses BRAT libraries) it has the impact that
    rather than specifying linking as (old-school linking)
      -L<libdir> -lBrat<component>
    one can utilise the extra information on required ROOT libraries by
    using libtool and linking against with
       <libdir>/libBrat<component>.la
    However, old-school linking still works perfectly fine.
    
    Autoconf macros:
    ----------------
    Some users have reported problems with the autoconf macro files in the
    config subdirectpry.  Therefor, I've extracted all those macros and put
    them in acinclude.m4 in the top directory.  Also, the macro names has
    been changed to start with BRAT_. The acinclude.m4 file is install in
    <datadir>/aclocal as brat.m4, but that should not give any conflicts,
    since the macro names has been changed.  That changes is also
    propegated to the help subdirectory.
    
    README file:
    ------------
    The contenst, now in The Guide, was removed, and instead, I've put in a
    list of interlibrary dependencies - and there are ugly!  We need to do
    something about that at some point.   To help that, I listed some
    questions at the  end of the file.
    
    
    Other stuff:
    ------------
    To calm some concerns previously raised by Kris, I ask you to please
    log on to a rcas machine, and then do (You don't have to be logged on
    as cholm to do this): 
    
      ldd ~cholm/bin/bratmain 
      	libBratDataAbc.so.2 => /brahms/u/cholm/lib/libBratDataAbc.so.2 (0x40013000)
    	libCore.so.3.02 => /afs/rhic/opt/brahms/new/lib/libCore.so.3.02 (0x4004a000)
      <output truncated> 
    
    As you see, ld.so (the dynamic linker) finds my own installation of
    BRAT in /brahms/u/cholm/ and the ROOT installation in
    /afs/rhic/opt/brahms/new/.  The fact that it there's a BRAT
    installation in /afs/rhic/opt/brahms/new/ does not influence the
    choice of libraries.  
    
    Now, the only problem is, if I had installed ROOT in /brahms/u/cholm/,
    but built BRAT using the ROOT in /afs/rhic/opt/brahms/new/ (and
    explicit --with-rootsys to configure), then it would find the ROOT in
    my home directory rather than the one in  /afs/rhic/opt/brahms/new/.
    However, since the ROOT libraries carries version numbers in the
    sonames (as the BRAT libraries does too), and the fact that ROOT is
    more stable than BRAT, this is not really a problem, and I think this
    was not Kris' concern in the first place.  
    
    Anyway, to circumvent that problem, I now (contrary to previously)
    suggest that you leave the --libdir option as it is in ROOT, that is
    install in <prefix>/lib/root.  Similar, we can now easily install the
    BRAT libraries in <prefix>/lib/brat if that's desirable.  We can do
    that via an explicit --libdir=$$(prefix)/lib/brat or by changing in
    the BRAT Makefile.am the lines 
    
      lib_LTLIBRARIES 
    
    to 
    
      pkglib_LTLIBRARIES 
    
    I leave that for comments.  
    
    Yours, 
    
    Christian Holm Christensen -------------------------------------------
    Address: Sankt Hansgade 23, 1. th.           Phone:  (+45) 35 35 96 91 
             DK-2200 Copenhagen N                Cell:   (+45) 28 82 16 23
             Denmark                             Office: (+45) 353  25 305 
    Email:   cholm@nbi.dk                        Web:    www.nbi.dk/~cholm
    



    This archive was generated by hypermail 2b30 : Thu Oct 25 2001 - 17:27:33 EDT