ECMWF's GRIB and BUFR decoding/encoding library
Go to file
Shahram Najm 0b1c4574bf Add option to replace TPL absolute paths with library names
This should help with relocatability: instead of generating
eccodes-config.cmake with an absolute path to Third Party Libraries
(TPLs) (e.g. /lib/x86_64-linux-gnu/libm.so.6) we have the option to use
the library name instead (e.g. -lm).

We also use library names in eccodes-targets.cmake and eccodes.pc if the option is set.

The motivation is so that we can distribute packages with conda-forge.
Without this change, the conda-forge build leaves its build path in the
files above. When we come to build another package downstream, e.g.
Magics, we are unable to find the ecCodes libraries because the absolute
paths to the TPLs are no longer valid. Using library names instead lets
cmake find the TPLs on the downstream build system.
2019-03-19 16:31:49 +00:00
.settings Eclipse settings 2016-09-13 18:15:47 +01:00
bamboo bamboo cleanup 2019-01-03 14:39:20 +00:00
cmake Import Find{AEC,NumPy,OpenJPEG}.cmake from ecbuild 2019-03-12 13:45:34 +00:00
concepts Ported grib_api 1.10.4 from p4 to git 2013-03-25 12:04:10 +00:00
config cleanup old unused code. Made json bufr_dump default 2015-02-12 09:14:47 +00:00
confluence ECC-567: codes_split_file documentation 2017-10-27 14:50:59 +01:00
data ECC-769: Imaginary part of first spectral coefficients is not zero when decoding a spectral field 2018-11-12 13:55:44 +00:00
definitions ECC-902: UERRA: wind speed fields 2019-03-01 15:59:01 +00:00
doxygen Remove DOS line endings 2019-01-07 13:54:29 +00:00
examples ECC-869: debugging help when bitmap info is wrong 2019-03-14 18:42:40 +00:00
examples.dev cppcheck warnings 2018-07-12 17:54:32 +01:00
fortran ECC-896: Fortran API: Memory leak in grib_index_get_int and grib_index_get_string 2019-02-16 19:00:14 +00:00
gaussian_experimental Merge grib api and eccodes - part 4 - src compiles 2014-06-20 18:18:57 +01:00
gribex Merge grib api and eccodes - part 4 - src compiles 2014-06-20 18:18:57 +01:00
html Documentation (See SUP-2504) 2018-07-05 16:34:22 +01:00
ifs_samples ECC-568: add option to skip installation of samples and definitions, to be used together with ENABLE_MEMFS 2017-07-19 17:14:19 +01:00
java Ported grib_api 1.10.4 from p4 to git 2013-03-25 12:04:10 +00:00
m4 cleanup old unused code. Made json bufr_dump default 2015-02-12 09:14:47 +00:00
memfs ECC-535: Workaround for internal compiler error in memfs.c (HPC-230) 2017-09-01 16:34:13 +00:00
parameters Replace macros/makefile vars to use ECCODES prefix 2015-01-24 22:19:32 +00:00
perf Update copyright notices: 2017 -> 2018 2018-01-02 11:31:02 +00:00
perl Remove references to Baudouin home dir! 2018-03-19 12:27:22 +00:00
python Add CODES_PRODUCT_GTS 2019-03-19 16:00:07 +00:00
python3 Add CODES_PRODUCT_GTS 2019-03-19 16:00:07 +00:00
rpms ECC-72: Discontinue support for Fortran77 2015-02-27 18:21:10 +00:00
samples ECC-568: add option to skip installation of samples and definitions, to be used together with ENABLE_MEMFS 2017-07-19 17:14:19 +01:00
share/eccodes Rebranding 2015-02-20 13:54:12 +00:00
src ECC-869: debugging help when bitmap info is wrong 2019-03-14 18:42:40 +00:00
templates Ported grib_api 1.10.4 from p4 to git 2013-03-25 12:04:10 +00:00
tests ECC-913: Tools: Add gts_count 2019-03-19 15:36:25 +00:00
tests.ecmwf Remove references to Baudouin home dir! 2018-03-19 12:27:22 +00:00
tigge Update Makefile 2019-01-21 17:46:11 +00:00
tools ECC-913: Tools: Add gts_count 2019-03-19 15:36:25 +00:00
windows/msvc ECC-884: retarget solution problem 2019-02-05 16:39:54 +00:00
.appveyor.yml Merge with changes on GitHub 2019-02-11 16:13:16 +00:00
.cproject Eclipse settings 2016-11-22 11:06:35 +00:00
.gitignore Clean up 2019-02-25 16:52:51 +00:00
.project Add Eclipse proj files 2014-12-11 14:45:09 +00:00
.travis.yml Travis: add install/bin to path 2019-02-13 16:31:53 +00:00
AUTHORS Update authors 2015-10-01 10:49:55 +01:00
CMakeLists.txt Add option to replace TPL absolute paths with library names 2019-03-19 16:31:49 +00:00
COPYING Ported grib_api 1.10.4 from p4 to git 2013-03-25 12:04:10 +00:00
ChangeLog Update URLs 2019-01-28 12:47:22 +00:00
INSTALL Update URLs 2019-01-28 12:47:22 +00:00
LICENSE Ported grib_api 1.10.4 from p4 to git 2013-03-25 12:04:10 +00:00
Makefile.am Remove grib data from distro 2015-07-09 14:18:08 +01:00
NEWS Update URLs 2019-01-28 12:47:22 +00:00
NOTICE Update copyright notices: 2017 -> 2018 2018-01-02 11:31:02 +00:00
README.md README: replace ampersand in shield labels 2019-02-13 16:48:30 +00:00
VERSION.cmake Bump up version to 2.12.1 2019-02-25 12:40:31 +00:00
acinclude.m4 Fix issue with pthreads test (cast to pointer from integer of different size) 2015-04-17 14:42:00 +01:00
autogen.sh Remove restriction on autoreconf version 2013-08-22 17:01:16 +01:00
configure.ac Rebranding: ABI 2015-02-25 18:11:17 +00:00
eccodes-import.cmake.in GRIB-822 Export samples and definition paths for install and build trees 2015-08-28 14:00:17 +01:00
eccodes.sublime-project Update sublime text project 2017-03-17 18:46:27 +00:00
eccodes_config.h.in Merge of Windows Port 2019-01-21 13:18:21 +00:00
license.pl Update copyright notices: 2017 -> 2018 2018-01-02 11:31:02 +00:00
make_dist_definitions GRIB-446 and GRIB-693: Missing version information in grib_api header files 2015-02-25 17:42:04 +00:00
memfs.py Merge of Windows Port 2019-01-21 13:18:21 +00:00
project_summary.cmake Python3: Project summary 2018-11-26 15:20:41 +00:00
show_compile.sh Update copyright notices: 2017 -> 2018 2018-01-02 11:31:02 +00:00
tox.ini ECC-188 Add tox.ini with flake8 configuration 2015-11-12 15:52:26 +00:00
version.sh Bump up version to 2.12.1 2019-02-25 12:40:31 +00:00

README.md

ecCodes

Linux & macOS: master Linux & macOS: develop Windows: master Windows: develop

ecCodes is a package developed by ECMWF which provides an application programming interface and a set of tools for decoding and encoding messages in the following formats:

  • WMO FM-92 GRIB edition 1 and edition 2
  • WMO FM-94 BUFR edition 3 and edition 4
  • WMO GTS abbreviated header (only decoding)

A useful set of command line tools provide quick access to the messages. C, Fortran 90 and Python interfaces provide access to the main ecCodes functionality.

ecCodes is an evolution of GRIB API. It is designed to provide the user with a simple set of functions to access data from several formats with a key/value approach.

Documentation can be found here: https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home

INSTALLATION

  1. Download ecCodes from https://software.ecmwf.int/wiki/display/ECC/Releases

  2. Unpack distribution:

    tar -xzf eccodes-x.y.z-Source.tar.gz

  3. Create a separate directory where to build ecCodes:

    mkdir build cd build

  4. Run cmake pointing to the source and specify the installation location:

    cmake ../eccodes-x.y.z-Source -DCMAKE_INSTALL_PREFIX=/path/to/where/you/install/eccodes

    It is strongly recommended that you install into a clean directory

  5. Compile, test and install:

    make ctest make install

For more details, please see: https://software.ecmwf.int/wiki/display/ECC/ecCodes+installation

If you encounter any problems please send an e-mail with your problem to:

Software.Support@ecmwf.int

Copyright 2005-2018 ECMWF.

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.

In applying this licence, ECMWF does not waive the privileges and immunities granted to it by virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.