How to make a library in debug mode

( Document last updated by Florence Ranjard )

Libraries are built in optimized  and debug mode. Application are built in optimized mode.

To build a library in debug mode it is sufficient to provide a tag which defines the debug mode on the various
platforms:

platform optimize debug
Linux tag = i386_linux22 tag = Linuxdbx

1. Build a library in debug mode

> telnet lxplus

> cd $HOME/newmycmt/package/v1/cmt
> cmt config
> source setup.csh
> gmake tag=Linuxdbx  ! will build a library of package in the ../Linuxdbx subdirectory

2. Build an application in debug mode

> telnet lxplus

> cd $HOME/mycmt/SICB/SICBDST/v250/cmt
> gmake tag=Linuxdbx

==> CMT will try to link all libraries from the ../Linuxdbx subdirectory of every packages
        from your working directory or the release directory depending of your configuration:
        if you want to link SICB in debug mode all libraries must exist in debug mode in the
        related  $PACKAGEROOT.

3. Build an application in debug mode with only few libraries in debug mode

assume that you want the Kalman filter and your own application code in debug mode

> telnet lxplus

> cd $KALMANROOT/cmt
> gmake tag=Linuxdbx

> cd $SICBDSTROOT/cmt
> cmt show macro_value fflags -tag=Linuxdbx             ! to get the fortran flags for lxplus in debug mode
-g -fno-automatic -fdollar-ok -ff90 -w -DSICBDEBUG

> -- edit requirements to add 2 macros
   # redefine fflags for Linux(optimized) to use debug flags
   macro fflags "" \
             Linux "
g -fno-automatic -fdollar-ok -ff90 -w -DSICBDEBUG "
   # define the kalman tag to be debug
    macro kalman_tag "Linuxdbx"
> gmake clean all   

you can check that the SICBDST compilation is done with debug flags and the application is linked with libraries
stored in $PACKAGEROOT/i386_linux22  but $KALMANROOT/Linuxdbx.