/crtm-bundle

Bundle containing all the repositories that are needed to compile CRTM v2.4.0.

Primary LanguageShellApache License 2.0Apache-2.0

(C) Copyright 2020 UCAR

This software is licensed under the terms of the Apache Licence Version 2.0
which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
--- Kickstart guide to using pyCRTM --
pyCRTM was created by Bryan Karpowicz, NASA GMAO, and is included in crtm-bundle with
permission.  

In the top level directory, you'll find a kickstart script that should it easier to kickstart
getting pycrtm running with CRTM v2.4.0. Simply execute the script:

    sh ./kickstart_pyCRTM.sh

This will build the crtm, creates library files in `crtm-bundle/crtm_v2.4.0/`,
builds pyCRTM, and runs a test case at the end.  See `pycrtm/README.md` for technical
details on running and using pyCRTM. 
		
Any failures in the script (still experimental) should be sent
to crtm-support@googlegroups.com or to bjohns@ucar.edu 
Thanks for your patience while we improve the merge of pyCRTM and CRTM v2.4.0


--- Building the CRTM bundle ---

    cd /somewhere/to/store/source/code
    git clone https://github.com/JCSDA/crtm-bundle.git

    cd /somewhere/to/build
    ecbuild /somewhere/to/store/source/code/crtm-bundle
    make -j4

The ecbuild command above will clone all the source code for the projects defined in the
CMakeLists.txt in the bundle and the make command will build them all.

To work with a different branch than the default for a given project, the branch must be
modified in the CMakeLists.txt for the bundle.

Note: ecbuild accepts all cmake flags, for example, compilers can be selected with:
    ecbuild -DCMAKE_CXX_COMPILER=/path/to/gcc-7.2/bin/g++ ${SRC}

For testing (from build directory):

    ctest

--- Working with the code ---

The CMakeLists.txt file in this directory contains the list of the repositories included
in the bundle and the branch to be used. The branch specified in the CMakeLists.txt is
the one that will be compiled. When working with you own branch, the should be changed in
the CMakeLists.txt file but it is not necessary to re-run ecbuild, make is enough.

After the fisrt build, changes in the code can be tested by re-running only
(from build directory):

    make -j4
    ctest

By default, make will not update your local repository from the remote. To update all repositories
in the bundle, run:

    make update

The update will fail for repositories that contain uncommited code. This is a safety mechanism to
avoid losing your work.

--- Note about using git ---

It is recommended that you create a .gitconfig file in your home directory (inside the container
if working from a container) with the following content:

$ cat .gitconfig 
[user]
    name = Your Name
    email = yourname@somewhere.something

[credential]
    helper = cache --timeout=3600