comparison INSTALL @ 208:13d27ff5b5df

add documents for release
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 18 Feb 2023 23:24:54 +0000
parents
children 34f8549ff0b1
comparison
equal deleted inserted replaced
207:10f11a2d4042 208:13d27ff5b5df
1 Dependency graph
2 ================
3
4 The complete Themyscira GSM codec libraries & utilities package as presented
5 here consists of two principal parts:
6
7 Division 1: libgsmefr and libgsmfrp, the two C code libraries intended to be
8 usable by other software;
9
10 Division 2: various command line utilities that were developed under the
11 umbrella of this project and are being released accordingly.
12
13 Division 2 components have a compile-time dependency on Division 1 (some of
14 these Division 2 command line utilities link with libgsmefr or libgsmfrp), but
15 not the other way around: neither libgsmefr nor libgsmfrp has any dependency on
16 any other part of this package.
17
18 However, the original GSM 06.10 library (libgsm) from 1990s is a required
19 dependency for several components of the present Themyscira package: libgsmfrp
20 and several Division 2 command line utilities have a compile-time dependency on
21 <gsm.h> header file provided by libgsm, and several Division 2 utilities also
22 have a link dependency on libgsm itself. Therefore, libgsm should be considered
23 a hard dependency for the present GSM codec libraries & utilities package as a
24 whole, and it needs to be installed system-wide prior to compiling the present
25 software.
26
27 Compiling and installing Themyscira libraries and utilities
28 ===========================================================
29
30 Running 'make' at the top level of the present gsm-codec-lib package will
31 compile both Division 1 and Division 2 software components (both libraries and
32 utilities), with the top level Makefile codifying the dependency graph among
33 them. Installation, however, is a little more complicated in that there is no
34 single 'make install' target at the top level - instead of a single install
35 target, the top Makefile provides two separate installation targets:
36
37 make install-lib Install libgsmefr and libgsmfrp system-wide:
38 gsm_efr.h and gsm_fr_preproc.h are installed in
39 /usr/local/include; libgsmefr.a and libgsmfrp.a are
40 installed in /usr/local/lib. Superuser privileges
41 are usually required to write to these directories.
42
43 make install-utils Install Division 2 command line utilities into
44 /opt/freecalypso/bin directory, which is non-standard
45 in the muggle world but has been established in our
46 Themyscira community as the location for Themyscira-
47 developed command line utilities working with GSM.
48
49 The just-described separation between install-lib and install-utils targets has
50 been created because of the difference in install paths: libraries and their
51 header files that need to be easily findable and usable by other people's
52 unrelated software need to be installed under /usr/local, requiring su to root
53 before each install cycle, whereas /opt/freecalypso/bin (writable without root
54 privileges on the Mother's development machine) is much more convenient for
55 Division 2 command line utilities.
56
57 However, the present gsm-codec-lib package differs from FreeCalypso host tools
58 and SIM tools packages in that in the present package, you ARE allowed to freely
59 change these installation directories to fit your own preferences. FC host
60 tools and FC SIM tools packages carry very strong admonitions in their INSTALL
61 documents to the effect that they MUST be installed under /opt/freecalypso and
62 that this path cannot be changed; this strict imposition is made because of
63 strong intercomponent dependencies within those software suites, with different
64 components invoking each other or looking for their support files using hard-
65 coded absolute pathnames. But the present gsm-codec-lib package is different:
66 you are free to move our Division 2 command line utilities from
67 /opt/freecalypso/bin to /usr/local/bin or anywhere else you like, and you are
68 likewise free to move our Division 1 libraries from /usr/local/{include,lib} to
69 whatever location would be most appropriate in your environment.
70
71 To change installation directories, you will need to edit subdirectory Makefiles
72 as follows:
73
74 Division 1:
75
76 libgsmefr/Makefile
77 libgsmfrp/Makefile
78
79 Division 2:
80
81 amrconv/Makefile
82 efrtest/Makefile
83 frtest/Makefile
84 miscutil/Makefile
85 pcap/Makefile
86
87 pcap subdirectory and libpcap dependency
88 ========================================
89
90 The present package includes (as part of Division 2) a set of command line
91 utilities for analyzing RTP streams that have been captured with tcpdump or
92 equivalent tools in pcap format. These utilities, described in the
93 doc/RTP-analysis article, are built in the pcap subdirectory and naturally
94 depend on libpcap. If your system lacks libpcap and you don't need these RTP
95 analysis utilities, you can edit the top level Makefile and remove pcap from
96 the list in SUBDIR_UTILS.