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.2.0) is based on SOFA version "20150209_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 | * Currently no bugfixe changes relative to SOFA.
|
---|
38 |
|
---|
39 | Building and installing ERFA
|
---|
40 | ----------------------------
|
---|
41 |
|
---|
42 | To build and install a released version of ERFA in your OS's standard
|
---|
43 | location, simply do::
|
---|
44 |
|
---|
45 | ./configure
|
---|
46 | make
|
---|
47 | make install
|
---|
48 |
|
---|
49 | If you want to run the tests to make sure ERFA built correctly, before
|
---|
50 | installing do::
|
---|
51 |
|
---|
52 | make check
|
---|
53 |
|
---|
54 |
|
---|
55 | For developers
|
---|
56 | ^^^^^^^^^^^^^^
|
---|
57 |
|
---|
58 | If you are using a developer version from github, you will need to first do
|
---|
59 | ``./bootstrap.sh`` before the above commands. This requires ``autoconf`` and
|
---|
60 | ``libtool``.
|
---|
61 |
|
---|
62 | If you wish to build against the ERFA static library without installing, you
|
---|
63 | will find it in ``$ERFAROOT/src/.libs/liberfa.a`` after running ``make``.
|
---|
64 |
|
---|
65 | Creating a single-file version of the source code
|
---|
66 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
---|
67 |
|
---|
68 | Alternatively, if you wish to bundle the ERFA source code with a separate
|
---|
69 | package, you can use the ``source_flattener.py`` script from the
|
---|
70 | `erfa-fetch repository`_ to combine
|
---|
71 | the ERFA source code into just two files: a ``erfa.c`` source file, and an
|
---|
72 | ``erfa.h`` include file. You should run this script like this::
|
---|
73 |
|
---|
74 | cd /path/to/erfa-source-code
|
---|
75 | python /path/to/erfa-fetch/source_flattener.py src -n erfa
|
---|
76 |
|
---|
77 | If possible, however, it is recommended that you provide an option to use any
|
---|
78 | copy of the ERFA library that is already installed on the system.
|
---|
79 |
|
---|
80 | Travis build status
|
---|
81 | -------------------
|
---|
82 | .. image:: https://travis-ci.org/liberfa/erfa.png
|
---|
83 | :target: https://travis-ci.org/liberfa/erfa
|
---|
84 |
|
---|
85 | .. _erfa-fetch repository: https://github.com/liberfa/erfa-fetch
|
---|