FreeCalypso > hg > gsm-codec-lib
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 |
