blob: e80ef6a2bdcb492a854e595102a70f7d336c47e2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
This file contains instructions to build and install the TSS libraries.
# Dependencies
To build and install the tpm2-tss software the following dependencies are
required:
* GNU Autoconf
* GNU Autoconf archive
* GNU Automake
* GNU Libtool
* C compiler
* C Library Development Libraries and Header Files
* pkg-config
* uriparser
The following are dependencies only required when building the test suite.
Most users will not need to install these dependencies:
* cmocka unit test framework
## Ubuntu
```
$ sudo apt -y update
$ sudo apt -y install \
autoconf-archive \
libcmocka0 \
libcmocka-dev \
build-essential \
git \
pkg-config \
gcc \
g++ \
m4 \
libtool \
automake \
liburiparser-dev \
autoconf
```
## Fedora
There is a package already, so the package build dependencies information can be
used to make sure that the needed packages to compile from source are installed:
```
$ sudo dnf builddep tpm2-tss
```
# Building From Source
## Bootstrapping the Build
To configure the tpm2-tss source code first run the bootstrap script, which
generates list of source files, and creates the configure script:
```
$ ./bootstrap
```
## Configuring the Build
Then run the configure script, which generates the makefiles:
```
$ ./configure
```
## Compiling the Libraries
Then compile the code using make:
```
$ make -j$(nproc)
```
## Installing the Libraries
Once you've built the tpm2-tss software it can be installed with:
```
$ sudo make install
```
This will install the libraries to a location determined at configure time.
See the output of ./configure --help for the available options. Typically you
won't need to do much more than provide an alternative --prefix option at
configure time, and maybe DESTDIR at install time if you're packaging for a
distro.
**NOTE**: It may be necessary to run ldconfig (as root) to update the run-time
bindings before executing a program that links against libsapi or a TCTI
library:
```
$ sudo ldconfig
```
## Building In A Container
If you are having trouble installing the dependencies on your machine you can
build in a container.
```
$ docker build -t tpm2 .
$ docker run --name temp tpm2 /bin/true
$ docker cp temp:/tpm2-tss tpm2-tss
$ docker rm temp
```
tpm2-tss is now in your working directory and contains all the built files.
|