libtpms/INSTALL
Stefan Berger 03d25ba067 Make compileable on Ubuntu and docu for Ubuntu
Ubuntu has different package names that need to be documented separtely.
Ubuntu requires exec_prefix in the libtpms.pc file for pkg-config to work.
Rework some of the configure.ac parts.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2014-12-15 22:10:07 -05:00

159 lines
4.4 KiB
Plaintext

This document contains the following sections:
==============================================
- Quick start
- Building libtpms
- Installing libtpms, include files and man pages
- Uninstalling libtpms, include files and man pages
- More on man pages
Quick start:
------------
The libtpms library can be built using the steps:
# ./bootstrap.sh
# ./configure
# make
# sudo make install
Building libtpms:
-----------------
The configure script needs to be run first, and can be done using:
./configure
By default, files will be installed in '/usr/local/lib', etc. If you
would like to have these files installed in '/usr/lib', etc, then run
configure using:
./configure --prefix=/usr
For more details on configure options, run "./configure -h".
Building libtpms can be done using:
make clean all
The library is known to build on Linux and Cygwin systems and possible
other Operating Systems that use .so as library extensions.
On Linux systems, libtpms can be built with either one of the following
crypto backends:
- openssl
- freebl
On Cygwin only openssl is available and therefore can only be built with
openssl.
To build for openssl, the following development packages must have been
installed:
Fedora/RedHat:
- glibc-headers
- openssl-devel
Ubuntu:
- libc6-dev
- libssl-dev
To build for freebl, the following development packages must have been
installed prior to compilation:
Fedora/RedHat:
- glibc-headers
- nss-softokn-freebl-devel (preferably version 3.12.9-2 or newer)
- nss-softokn-devel (preferably version 3.12.9-2 or newer)
- gmp-devel
Ubuntu:
- libc6-dev
- libgmp-dev
- libnspr4-dev
- libnss3-dev (preferably version 3.17.2; needs to have blapi.h)
By default, libtpms is built with the openssl crypto library, which was
shown above. To build with the freebl crypto library the following command
line can be used:
make CRYPTO_SUBSYSTEM=freebl clean all
To verify that libtpms was built with freebl as the crypto backend, one
can run:
ldd /usr/lib/libtpms.so
linux-vdso.so.1 => (0x00007fff8d5ff000)
libgmp.so.3 => /usr/lib64/libgmp.so.3 (0x00007f5352a13000)
libnspr4.so => /lib64/libnspr4.so (0x00007f53527d6000)
libnssutil3.so => /usr/lib64/libnssutil3.so (0x00007f53525b6000)
libnss3.so => /usr/lib64/libnss3.so (0x00007f535227c000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5351ed8000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5351cba000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f5351ab6000)
libplc4.so => /lib64/libplc4.so (0x00007f53518b2000)
libplds4.so => /lib64/libplds4.so (0x00007f53516ae000)
/lib64/ld-linux-x86-64.so.2 (0x0000003a1c000000)
The fact that the libraries libgmp, libnspr4, libnssutil3, libnss3,
libpc4, and libplds4 are linked agaist is an indication that the freebl
library was used for linking.
In case of openssl's libcrypto the output would be the following:
linux-vdso.so.1 => (0x00007fffcbdff000)
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007fdb1d00e000)
libc.so.6 => /lib64/libc.so.6 (0x00007fdb1cc6a000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fdb1ca65000)
libz.so.1 => /lib64/libz.so.1 (0x00007fdb1c84e000)
/lib64/ld-linux-x86-64.so.2 (0x0000003a1c000000)
A debug build that prints out __lots__ of debugging information on the
TPM level can be built by invoking make as follows:
make CRYPTO_SUBSYSTEM=freebl BUILD_TYPE=debug
Installing libtpms, include files and man pages:
------------------------------------------------
The installation of libtpms, the development include files (headers) and
man pages can be achieved through:
make install
This will copy libtpms into the standard library directory on your Linux
system such as /usr/lib or /usr/lib64, depending on whether you built for
a 32 bit or 64 bit machine.
The public include files of libtpms will be copied to /usr/include/libtpms.
The man pages explaining the libtpms API will be copied to /usr/share/man.
Uninstalling libtpms, include files and man pages:
--------------------------------------------------
The libtpms library, its development include files (headers) and man pages
can be uninstalled from their standard locations using
make uninstall
More on man pages
-----------------
All of the libtpms APIs have a man page. The man pages contain explanations
on how to use the APIs as well as examples. Once installed, they can be
viewed as a typical man page:
man TPMLIB_MainInit
Otherwise, if they are not installed, they can then be viewed from the
libtpms root directory using:
man -M ./man TPMLIB_MainInit