]> git.proxmox.com Git - libtpms.git/blob - INSTALL
build-sys: Build libtpms v0.9.1
[libtpms.git] / INSTALL
1 This document contains the following sections:
2 ==============================================
3
4 - Quick start
5 - Building libtpms
6 - Installing libtpms, include files and man pages
7 - Uninstalling libtpms, include files and man pages
8 - More on man pages
9
10 Quick start:
11 ------------
12
13 The libtpms library can be built using the steps (after installing
14 dependencies):
15
16 # ./autogen.sh --with-tpm2 --with-openssl --prefix=/usr
17 # make
18 # make check
19 # sudo make install
20
21 Building libtpms:
22 -----------------
23
24 The configure script needs to be run first, and can be done using:
25
26 ./autogen.sh --with-tpm2 --with-openssl
27
28 By default, files will be installed in '/usr/local/lib', etc. If you
29 would like to have these files installed in '/usr/lib', etc, then run
30 configure using the following command line. On some distributions it may
31 be necessary to also pass --libdir=/lib64 (for 64 bit systems).
32
33 ./autogen.sh --prefix=/usr --with-tpm2 --with-openssl
34
35 For more details on configure options, run "./configure -h".
36
37 Building libtpms can be done using:
38
39 make all
40
41 The library is known to build on Linux and Cygwin systems and possible
42 other Operating Systems that use .so as library extensions.
43
44 On Linux systems, libtpms can be built with either one of the following
45 crypto backends:
46
47 - openssl
48 - freebl (TPM 1.2 support only)
49
50 On Cygwin only openssl is available and therefore can only be built with
51 openssl.
52
53 To build for openssl, the following development packages must have been
54 installed:
55
56 Fedora/RedHat:
57 - automake
58 - autoconf
59 - libtool
60 - make
61 - gcc
62 - glibc-headers
63 - openssl-devel
64
65 Ubuntu:
66 - automake
67 - autoconf
68 - libtool
69 - make
70 - gcc
71 - libc-dev
72 - libssl-dev
73
74 To build for freebl (TPM 1.2 support only), the following development
75 packages must have been installed prior to compilation:
76
77 Fedora/RedHat:
78 - glibc-headers
79 - nss-softokn-freebl-devel (preferably version 3.12.9-2 or newer)
80 - nss-softokn-devel (preferably version 3.12.9-2 or newer)
81 - gmp-devel
82
83 Ubuntu:
84 - libc6-dev
85 - libgmp-dev
86 - libnspr4-dev
87 - libnss3-dev (preferably version 3.17.2; needs to have blapi.h)
88
89 By default, libtpms is built with the openssl crypto library, which was
90 shown above. To build with the freebl crypto library the following command
91 line can be used (TPM 1.2 support only):
92
93 ./autogen.sh --prefix=/usr
94 make all install
95
96 To verify that libtpms was built with freebl as the crypto backend, one
97 can run:
98
99 ldd /usr/lib/libtpms.so or ldd /usr/lib64/libtpms.so
100
101 linux-vdso.so.1 => (0x00007fff8d5ff000)
102 libgmp.so.3 => /usr/lib64/libgmp.so.3 (0x00007f5352a13000)
103 libnspr4.so => /lib64/libnspr4.so (0x00007f53527d6000)
104 libnssutil3.so => /usr/lib64/libnssutil3.so (0x00007f53525b6000)
105 libnss3.so => /usr/lib64/libnss3.so (0x00007f535227c000)
106 libc.so.6 => /lib64/libc.so.6 (0x00007f5351ed8000)
107 libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5351cba000)
108 libdl.so.2 => /lib64/libdl.so.2 (0x00007f5351ab6000)
109 libplc4.so => /lib64/libplc4.so (0x00007f53518b2000)
110 libplds4.so => /lib64/libplds4.so (0x00007f53516ae000)
111 /lib64/ld-linux-x86-64.so.2 (0x0000003a1c000000)
112
113 The fact that the libraries libgmp, libnspr4, libnssutil3, libnss3,
114 libpc4, and libplds4 are linked against is an indication that the freebl
115 library was used for linking.
116
117 In case of openssl's libcrypto the output would be the following:
118
119 linux-vdso.so.1 => (0x00007fffcbdff000)
120 libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007fdb1d00e000)
121 libc.so.6 => /lib64/libc.so.6 (0x00007fdb1cc6a000)
122 libdl.so.2 => /lib64/libdl.so.2 (0x00007fdb1ca65000)
123 libz.so.1 => /lib64/libz.so.1 (0x00007fdb1c84e000)
124 /lib64/ld-linux-x86-64.so.2 (0x0000003a1c000000)
125
126
127 Installing libtpms, include files and man pages:
128 ------------------------------------------------
129
130 The installation of libtpms, the development include files (headers) and
131 man pages can be achieved through:
132
133 make install
134
135 This will copy libtpms into the standard library directory on your Linux
136 system such as /usr/lib or /usr/lib64, depending on whether you built for
137 a 32 bit or 64 bit machine.
138
139 The public include files of libtpms will be copied to /usr/include/libtpms.
140
141 The man pages explaining the libtpms API will be copied to /usr/share/man.
142
143
144 Uninstalling libtpms, include files and man pages:
145 --------------------------------------------------
146
147 The libtpms library, its development include files (headers) and man pages
148 can be uninstalled from their standard locations using
149
150 make uninstall
151
152
153 More on man pages
154 -----------------
155
156 All of the libtpms APIs have a man page. The man pages contain explanations
157 on how to use the APIs as well as examples. Once installed, they can be
158 viewed as a typical man page:
159
160 man TPMLIB_MainInit
161
162 Otherwise, if they are not installed, they can then be viewed from the
163 libtpms root directory using:
164
165 man -M ./man TPMLIB_MainInit