source: trunk/FACT++/erfa/README.rst@ 19926

Last change on this file since 19926 was 18921, checked in by tbretz, 7 years ago
Updated to ERFA 1.4.0
File size: 3.7 KB
Line 
1This is the source code repository for ERFA (Essential Routines for
2Fundamental Astronomy). ERFA is a C library containing key algorithms for
3astronomy, and is based on the `SOFA library <http://www.iausofa.org/>`_ published by the International
4Astronomical Union (IAU).
5
6ERFA is intended to replicate the functionality of SOFA (aside from possible
7bugfixes in ERFA that have not yet been included in SOFA), but is licensed
8under a three-clause BSD license to enable its compatibility with a wide
9range of open source licenses. Permission for this release has been
10obtained from the SOFA board, and is avilable in the ``LICENSE`` file included
11in this source distribution.
12
13Differences from SOFA
14---------------------
15
16This version of ERFA (v1.3.0) is based on SOFA version "20160503_a", with the
17differences outlined below.
18
19ERFA branding
20^^^^^^^^^^^^^
21
22All references to "SOFA" in the source code have been changed to ERFA, and
23functions have the prefix ``era`` instead of ``iau``.
24
25C macro prefixes
26^^^^^^^^^^^^^^^^
27
28All C macros used in ERFA are the same as their SOFA equivalents, but with an
29``ERFA_`` prefix to prevent namespace collisions.
30
31Bugfixes
32^^^^^^^^
33
34ERFA includes smaller changes that may or may not eventually make it into SOFA,
35addressing localized bugs or similar smaller issues:
36
37* ERFA 1.4.0 and SOFA "20170420"
38
39 + ERFA 1.4.0 adds the ``eraVersion`` and ``eraSofaVersion`` functions to
40 determine the installed version of ERFA (and the SOFA version it is derived
41 from).
42
43 + ERFA 1.4.0 includes some bug fixes contributed to ERFA after 1.3.0 but
44 before 1.4.0. These were incorporated (with modification) into
45 SOFA "20170420" (without attribution) and hence these are not differences
46 between ERFA and SOFA. (See https://github.com/liberfa/erfa/issues/40 and
47 https://github.com/liberfa/erfa/issues/41)
48
49* ERFA 1.3.0 and SOFA "20160503_a"
50
51 + There are no differences between ERFA 1.3.0 and SOFA "20160503_a".
52
53* ERFA 1.2.0 and SOFA "20150209_a"
54
55 + Typos have been corrected in the documentation of atco13 and atio13 (see https://github.com/liberfa/erfa/issues/29).
56
57Note that issues identified in ERFA should generally also be reported upstream to SOFA at sofa@ukho.gov.uk.
58
59Building and installing ERFA
60----------------------------
61
62To build and install a released version of ERFA in your OS's standard
63location, simply do::
64
65 ./configure
66 make
67 make install
68
69If you want to run the tests to make sure ERFA built correctly, before
70installing do::
71
72 make check
73
74
75For developers
76^^^^^^^^^^^^^^
77
78If you are using a developer version from github, you will need to first do
79``./bootstrap.sh`` before the above commands. This requires ``autoconf`` and
80``libtool``.
81
82If you wish to build against the ERFA static library without installing, you
83will find it in ``$ERFAROOT/src/.libs/liberfa.a`` after running ``make``.
84
85Creating a single-file version of the source code
86^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
87
88Alternatively, if you wish to bundle the ERFA source code with a separate
89package, you can use the ``source_flattener.py`` script from the
90`erfa-fetch repository`_ to combine
91the ERFA source code into just two files: a ``erfa.c`` source file, and an
92``erfa.h`` include file. You should run this script like this::
93
94 cd /path/to/erfa-source-code
95 python /path/to/erfa-fetch/source_flattener.py src -n erfa
96
97If possible, however, it is recommended that you provide an option to use any
98copy of the ERFA library that is already installed on the system.
99
100Travis build status
101-------------------
102.. image:: https://travis-ci.org/liberfa/erfa.png
103 :target: https://travis-ci.org/liberfa/erfa
104
105.. _erfa-fetch repository: https://github.com/liberfa/erfa-fetch
Note: See TracBrowser for help on using the repository browser.