comparison INSTALL @ 454:4b6fa53a8240

INSTALL: document the new way
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 10 May 2024 06:19:24 +0000
parents 34f8549ff0b1
children a53225b44ea5
comparison
equal deleted inserted replaced
453:19f1aa01ea10 454:4b6fa53a8240
2 ================ 2 ================
3 3
4 The complete Themyscira GSM codec libraries & utilities package as presented 4 The complete Themyscira GSM codec libraries & utilities package as presented
5 here consists of two principal parts: 5 here consists of two principal parts:
6 6
7 Division 1: libgsmefr and libgsmfrp, the two C code libraries intended to be 7 Division 1: libgsmefr, libgsmfr2 and libtwamr, the set of C code libraries
8 usable by other software; 8 intended to be usable by other software;
9 9
10 Division 2: various command line utilities that were developed under the 10 Division 2: various command line utilities that were developed under the
11 umbrella of this project and are being released accordingly. 11 umbrella of this project and are being released accordingly.
12 12
13 Division 2 components have a compile-time dependency on Division 1 (some of 13 Division 2 components have a compile-time dependency on Division 1 (most of
14 these Division 2 command line utilities link with libgsmefr or libgsmfrp), but 14 these Division 2 command line utilities link with the libraries), but not the
15 not the other way around: neither libgsmefr nor libgsmfrp has any dependency on 15 other way around: none of the core libraries have any dependency on any other
16 any other part of this package. 16 part of this package, not even on each other.
17 17
18 However, the original GSM 06.10 library (libgsm) from 1990s is a required 18 Previous versions of gsm-codec-lib suite had a dependency on libgsm, the
19 dependency for several components of the present Themyscira package: libgsmfrp 19 original GSM 06.10 implementation library from 1990s, and our suite was
20 and several Division 2 command line utilities have a compile-time dependency on 20 originally architectured as extending and building on top of libgsm. However,
21 <gsm.h> header file provided by libgsm, and several Division 2 utilities also 21 this dependency has now been eliminated, and our new GSM codec libraries and
22 have a link dependency on libgsm itself. Therefore, libgsm should be considered 22 utilities suite is now completely independent from historical libgsm.
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 23
27 Compiling and installing Themyscira libraries and utilities 24 Compiling and installing Themyscira libraries and utilities
28 =========================================================== 25 ===========================================================
29 26
30 Running 'make' at the top level of the present gsm-codec-lib package will 27 The configuration and build process has been fully revamped since previous
31 compile both Division 1 and Division 2 software components (both libraries and 28 versions:
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 29
37 make install-lib Install libgsmefr and libgsmfrp system-wide: 30 * You now need to run ./configure before running 'make' - however, please note
38 gsm_efr.h and gsm_fr_preproc.h are installed in 31 that our ./configure script is hand-coded, not Autotools/autohell, hence
39 /usr/local/include; libgsmefr.a and libgsmfrp.a are 32 there is no autoreconf nonsense involved.
40 installed in /usr/local/lib. Superuser privileges
41 are usually required to write to these directories.
42 33
43 make install-utils Install Division 2 command line utilities into 34 * When you run ./configure, you get the opportunity to either leave CC=, CFLAGS=
44 /opt/freecalypso/bin directory, which is non-standard 35 and the install prefix at their default values, or change them to your own
45 in the muggle world but has been established in our 36 preferences.
46 Themyscira community as the location for Themyscira-
47 developed command line utilities working with GSM.
48 37
49 The just-described separation between install-lib and install-utils targets has 38 * There are no more install-lib and install-utils targets, just regular
50 been created because of the difference in install paths: libraries and their 39 'make install' that installs everything into whichever prefix you chose at
51 header files that need to be easily findable and usable by other people's 40 configure time.
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 41
57 However, the present gsm-codec-lib package differs from FreeCalypso host tools 42 The default install prefix is /opt/themwi; to change it, pass the standard
58 and SIM tools packages in that in the present package, you ARE allowed to freely 43 --prefix=/wherever option to ./configure script. The default compilation
59 change these installation directories to fit your own preferences. FC host 44 settings are CC=gcc and CFLAGS=-O2; to change them, pass CC=my-whatever-cc
60 tools and FC SIM tools packages carry very strong admonitions in their INSTALL 45 and/or CFLAGS="-fwhatever-flags" to configure.
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