1 | This is the source code repository for ERFA (Essential Routines for
|
---|
2 | Fundamental Astronomy). ERFA is a C library containing key algorithms for
|
---|
3 | astronomy, and is based on the `SOFA library <http://www.iausofa.org/>`_ published by the International
|
---|
4 | Astronomical Union (IAU).
|
---|
5 |
|
---|
6 | ERFA is intended to replicate the functionality of SOFA (aside from possible
|
---|
7 | bugfixes in ERFA that have not yet been included in SOFA), but is licensed
|
---|
8 | under a three-clause BSD license to enable its compatibility with a wide
|
---|
9 | range of open source licenses. Permission for this release has been
|
---|
10 | obtained from the SOFA board, and is avilable in the ``LICENSE`` file included
|
---|
11 | in this source distribution.
|
---|
12 |
|
---|
13 | Differences from SOFA
|
---|
14 | ---------------------
|
---|
15 |
|
---|
16 | This version of ERFA (v1.3.0) is based on SOFA version "20160503_a", with the
|
---|
17 | differences outlined below.
|
---|
18 |
|
---|
19 | ERFA branding
|
---|
20 | ^^^^^^^^^^^^^
|
---|
21 |
|
---|
22 | All references to "SOFA" in the source code have been changed to ERFA, and
|
---|
23 | functions have the prefix ``era`` instead of ``iau``.
|
---|
24 |
|
---|
25 | C macro prefixes
|
---|
26 | ^^^^^^^^^^^^^^^^
|
---|
27 |
|
---|
28 | All C macros used in ERFA are the same as their SOFA equivalents, but with an
|
---|
29 | ``ERFA_`` prefix to prevent namespace collisions.
|
---|
30 |
|
---|
31 | Bugfixes
|
---|
32 | ^^^^^^^^
|
---|
33 |
|
---|
34 | ERFA includes smaller changes that may or may not eventually make it into SOFA,
|
---|
35 | addressing 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 |
|
---|
57 | Note that issues identified in ERFA should generally also be reported upstream to SOFA at sofa@ukho.gov.uk.
|
---|
58 |
|
---|
59 | Building and installing ERFA
|
---|
60 | ----------------------------
|
---|
61 |
|
---|
62 | To build and install a released version of ERFA in your OS's standard
|
---|
63 | location, simply do::
|
---|
64 |
|
---|
65 | ./configure
|
---|
66 | make
|
---|
67 | make install
|
---|
68 |
|
---|
69 | If you want to run the tests to make sure ERFA built correctly, before
|
---|
70 | installing do::
|
---|
71 |
|
---|
72 | make check
|
---|
73 |
|
---|
74 |
|
---|
75 | For developers
|
---|
76 | ^^^^^^^^^^^^^^
|
---|
77 |
|
---|
78 | If 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 |
|
---|
82 | If you wish to build against the ERFA static library without installing, you
|
---|
83 | will find it in ``$ERFAROOT/src/.libs/liberfa.a`` after running ``make``.
|
---|
84 |
|
---|
85 | Creating a single-file version of the source code
|
---|
86 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
---|
87 |
|
---|
88 | Alternatively, if you wish to bundle the ERFA source code with a separate
|
---|
89 | package, you can use the ``source_flattener.py`` script from the
|
---|
90 | `erfa-fetch repository`_ to combine
|
---|
91 | the 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 |
|
---|
97 | If possible, however, it is recommended that you provide an option to use any
|
---|
98 | copy of the ERFA library that is already installed on the system.
|
---|
99 |
|
---|
100 | Travis 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
|
---|