blob: c543a28765553d4be508dc5a2554ebdbaeed89ca [file] [log] [blame]
Peter Huewe9f7cc082019-05-02 18:16:28 +02001# SPDX-License-Identifier: BSD-2-Clause
Philip Tricca49635f42018-03-10 19:19:58 -08002# Copyright (c) 2015 - 2018 Intel Corporation
Andreas Fuchs0dc7c292018-02-28 20:01:13 +01003# Copyright (c) 2018 Fraunhofer SIT sponsored by Infineon Technologies AG
Will Arthurca8e7f32015-08-03 15:35:19 -04004# All rights reserved.
Andreas Fuchs2968c712018-02-01 18:22:47 +01005
Andreas Fuchs034d1ca2019-05-15 17:33:54 +02006-include $(top_srcdir)/git.mk
7
Andreas Fuchs0dc7c292018-02-28 20:01:13 +01008### Initialize global variables used throughout the file ###
Philip Triccad5a6ff42018-03-13 18:19:42 -07009INCLUDE_DIRS = -I$(srcdir)/src -I$(srcdir)/include/tss2
Alon Bar-Levd1106342019-01-11 19:29:52 +020010ACLOCAL_AMFLAGS = -I m4 --install
Dan Robertson948a3522019-08-21 21:09:32 -040011AM_CFLAGS = $(INCLUDE_DIRS) $(EXTRA_CFLAGS) $(CODE_COVERAGE_CFLAGS) \
12 $(SANITIZER_CFLAGS)
13AM_LDFLAGS = $(EXTRA_LDFLAGS) $(CODE_COVERAGE_LIBS) $(SANITIZER_LDFLAGS)
Philip Triccaa509a682015-09-14 15:34:52 -070014
Andreas Fuchs0dc7c292018-02-28 20:01:13 +010015# Initialize empty variables to be extended throughout
16lib_LTLIBRARIES =
17noinst_LTLIBRARIES =
18EXTRA_DIST =
Jonas Witschel64b08022019-04-22 22:55:31 +020019DISTCLEANFILES =
Andreas Fuchs0dc7c292018-02-28 20:01:13 +010020CLEANFILES =
21MOSTLYCLEANFILES =
Andreas Fuchsa0eda362018-03-28 11:56:42 +020022noinst_PROGRAMS =
Andreas Fuchs034d1ca2019-05-15 17:33:54 +020023MAINTAINERCLEANFILES = \
Andreas Fuchsd180d522019-05-22 13:32:32 +020024 $(DIST_ARCHIVES) \
25 AUTHORS
26
Tadeusz Struke004c772020-02-24 10:55:40 -080027TSS_GITIGNOREFILES = \
Andreas Fuchs034d1ca2019-05-15 17:33:54 +020028 $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \
29 $(GITIGNORE_MAINTAINERCLEANFILES_MAKEFILE_IN) \
30 $(GITIGNORE_MAINTAINERCLEANFILES_M4_LIBTOOL) \
31 src_vars.mk \
32 Makefile-fuzz-generated.am \
33 aminclude_static.am \
34 m4/ax_ac_append_to_file.m4 \
35 m4/ax_ac_print_to_file.m4 \
36 m4/ax_add_am_macro_static.m4 \
Andreas Fuchsb7925402019-05-15 19:02:16 +020037 m4/ax_add_fortify_source.m4 \
Andreas Fuchs034d1ca2019-05-15 17:33:54 +020038 m4/ax_am_macros_static.m4 \
39 m4/ax_check_compile_flag.m4 \
Andreas Fuchs4f811102019-05-15 19:02:36 +020040 m4/ax_check_enable_debug.m4 \
Andreas Fuchs034d1ca2019-05-15 17:33:54 +020041 m4/ax_check_gnu_make.m4 \
42 m4/ax_check_link_flag.m4 \
43 m4/ax_check_preproc_flag.m4 \
44 m4/ax_code_coverage.m4 \
45 m4/ax_file_escapes.m4 \
Andreas Fuchs4f811102019-05-15 19:02:36 +020046 m4/ax_is_release.m4 \
Andreas Fuchs034d1ca2019-05-15 17:33:54 +020047 m4/ax_normalize_path.m4 \
48 m4/ax_prog_doxygen.m4 \
49 m4/ax_valgrind_check.m4 \
Andreas Fuchsd180d522019-05-22 13:32:32 +020050 m4/pkg.m4
Philip Tricca4334dee2016-08-09 19:56:28 -070051
Tadeusz Struke004c772020-02-24 10:55:40 -080052GITIGNOREFILES = ""
Andreas Fuchs0dc7c292018-02-28 20:01:13 +010053### Add ax_* rules ###
54# ax_code_coverage
Jonas Witschel648fa842019-01-07 22:15:06 +010055if AUTOCONF_CODE_COVERAGE_2019_01_06
56include $(top_srcdir)/aminclude_static.am
57clean-local: code-coverage-clean
Joshua Lockc6793f32019-01-25 14:36:08 +000058distclean-local: code-coverage-dist-clean
Jonas Witschel648fa842019-01-07 22:15:06 +010059else
Andreas Fuchs0dc7c292018-02-28 20:01:13 +010060@CODE_COVERAGE_RULES@
Jonas Witschel648fa842019-01-07 22:15:06 +010061endif
Tadeusz Struke004c772020-02-24 10:55:40 -080062GITIGNOREFILES += $(TSS_GITIGNOREFILES)
Andreas Fuchs44ba2292020-02-03 17:05:43 +010063CODE_COVERAGE_DIRECTORY = $(top_builddir)/src $(top_builddir)/test
Juergen Reppff821bd2017-12-11 15:21:42 +010064
Peter Huewef59aee32019-02-19 22:56:21 +010065# ax_valgrind_check
66@VALGRIND_CHECK_RULES@
67
Andreas Fuchs0dc7c292018-02-28 20:01:13 +010068# ax_doxygen
69@DX_RULES@
70MOSTLYCLEANFILES += $(DX_CLEANFILES)
Philip Tricca99d41422017-06-18 15:11:50 -070071
Andreas Fuchse5273b32018-04-26 16:16:24 +020072if DOXYMAN
73DOXYMAN3 = \
Jonas Witscheldd54f332018-11-14 22:17:34 +010074 doxygen-doc/man/ESYS_CONTEXT.3 \
75 doxygen-doc/man/ESYS_TR.3 \
76 doxygen-doc/man/ESYS_TR_defines.3 \
77 doxygen-doc/man/Esys_ActivateCredential.3 \
78 doxygen-doc/man/Esys_Certify.3 \
79 doxygen-doc/man/Esys_CertifyCreation.3 \
80 doxygen-doc/man/Esys_ChangeEPS.3 \
81 doxygen-doc/man/Esys_ChangePPS.3 \
82 doxygen-doc/man/Esys_Clear.3 \
83 doxygen-doc/man/Esys_ClearControl.3 \
84 doxygen-doc/man/Esys_ClockRateAdjust.3 \
85 doxygen-doc/man/Esys_ClockSet.3 \
86 doxygen-doc/man/Esys_Commit.3 \
87 doxygen-doc/man/Esys_ContextLoad.3 \
88 doxygen-doc/man/Esys_ContextSave.3 \
89 doxygen-doc/man/Esys_Create.3 \
90 doxygen-doc/man/Esys_CreatePrimary.3 \
91 doxygen-doc/man/Esys_DictionaryAttackLockReset.3 \
92 doxygen-doc/man/Esys_DictionaryAttackParameters.3 \
93 doxygen-doc/man/Esys_Duplicate.3 \
94 doxygen-doc/man/Esys_ECC_Parameters.3 \
95 doxygen-doc/man/Esys_ECDH_KeyGen.3 \
96 doxygen-doc/man/Esys_ECDH_ZGen.3 \
97 doxygen-doc/man/Esys_EC_Ephemeral.3 \
98 doxygen-doc/man/Esys_EncryptDecrypt.3 \
99 doxygen-doc/man/Esys_EventSequenceComplete.3 \
100 doxygen-doc/man/Esys_EvictControl.3 \
101 doxygen-doc/man/Esys_FlushContext.3 \
102 doxygen-doc/man/Esys_GetCapability.3 \
103 doxygen-doc/man/Esys_GetCommandAuditDigest.3 \
104 doxygen-doc/man/Esys_GetRandom.3 \
105 doxygen-doc/man/Esys_GetSessionAuditDigest.3 \
106 doxygen-doc/man/Esys_GetTestResult.3 \
107 doxygen-doc/man/Esys_GetTime.3 \
108 doxygen-doc/man/Esys_Hash.3 \
109 doxygen-doc/man/Esys_HashSequenceStart.3 \
110 doxygen-doc/man/Esys_HierarchyChangeAuth.3 \
111 doxygen-doc/man/Esys_HierarchyControl.3 \
112 doxygen-doc/man/Esys_HMAC.3 \
113 doxygen-doc/man/Esys_HMAC_Start.3 \
114 doxygen-doc/man/Esys_Import.3 \
115 doxygen-doc/man/Esys_IncrementalSelfTest.3 \
116 doxygen-doc/man/Esys_Load.3 \
117 doxygen-doc/man/Esys_LoadExternal.3 \
118 doxygen-doc/man/Esys_MakeCredential.3 \
119 doxygen-doc/man/Esys_NV_Certify.3 \
120 doxygen-doc/man/Esys_NV_ChangeAuth.3 \
121 doxygen-doc/man/Esys_NV_DefineSpace.3 \
122 doxygen-doc/man/Esys_NV_Extend.3 \
123 doxygen-doc/man/Esys_NV_GlobalWriteLock.3 \
124 doxygen-doc/man/Esys_NV_Increment.3 \
125 doxygen-doc/man/Esys_NV_Read.3 \
126 doxygen-doc/man/Esys_NV_ReadLock.3 \
127 doxygen-doc/man/Esys_NV_ReadPublic.3 \
128 doxygen-doc/man/Esys_NV_SetBits.3 \
129 doxygen-doc/man/Esys_NV_UndefineSpace.3 \
130 doxygen-doc/man/Esys_NV_UndefineSpaceSpecial.3 \
131 doxygen-doc/man/Esys_NV_Write.3 \
132 doxygen-doc/man/Esys_NV_WriteLock.3 \
133 doxygen-doc/man/Esys_ObjectChangeAuth.3 \
134 doxygen-doc/man/Esys_PCR_Allocate.3 \
135 doxygen-doc/man/Esys_PCR_Event.3 \
136 doxygen-doc/man/Esys_PCR_Extend.3 \
137 doxygen-doc/man/Esys_PCR_Read.3 \
138 doxygen-doc/man/Esys_PCR_Reset.3 \
139 doxygen-doc/man/Esys_PCR_SetAuthPolicy.3 \
140 doxygen-doc/man/Esys_PCR_SetAuthValue.3 \
141 doxygen-doc/man/Esys_PolicyAuthorize.3 \
142 doxygen-doc/man/Esys_PolicyAuthValue.3 \
143 doxygen-doc/man/Esys_PolicyCommandCode.3 \
144 doxygen-doc/man/Esys_PolicyCounterTimer.3 \
145 doxygen-doc/man/Esys_PolicyCpHash.3 \
146 doxygen-doc/man/Esys_PolicyDuplicationSelect.3 \
147 doxygen-doc/man/Esys_PolicyGetDigest.3 \
148 doxygen-doc/man/Esys_PolicyLocality.3 \
149 doxygen-doc/man/Esys_PolicyNameHash.3 \
150 doxygen-doc/man/Esys_PolicyNV.3 \
151 doxygen-doc/man/Esys_PolicyNvWritten.3 \
152 doxygen-doc/man/Esys_PolicyOR.3 \
153 doxygen-doc/man/Esys_PolicyPassword.3 \
154 doxygen-doc/man/Esys_PolicyPCR.3 \
155 doxygen-doc/man/Esys_PolicyPhysicalPresence.3 \
156 doxygen-doc/man/Esys_PolicyRestart.3 \
157 doxygen-doc/man/Esys_PolicySecret.3 \
158 doxygen-doc/man/Esys_PolicySigned.3 \
159 doxygen-doc/man/Esys_PolicyTicket.3 \
160 doxygen-doc/man/Esys_PP_Commands.3 \
161 doxygen-doc/man/Esys_Quote.3 \
162 doxygen-doc/man/Esys_ReadClock.3 \
163 doxygen-doc/man/Esys_ReadPublic.3 \
164 doxygen-doc/man/Esys_Rewrap.3 \
165 doxygen-doc/man/Esys_RSA_Decrypt.3 \
166 doxygen-doc/man/Esys_RSA_Encrypt.3 \
167 doxygen-doc/man/Esys_SelfTest.3 \
168 doxygen-doc/man/Esys_SequenceComplete.3 \
169 doxygen-doc/man/Esys_SequenceUpdate.3 \
170 doxygen-doc/man/Esys_SetAlgorithmSet.3 \
171 doxygen-doc/man/Esys_SetCommandCodeAuditStatus.3 \
172 doxygen-doc/man/Esys_SetPrimaryPolicy.3 \
173 doxygen-doc/man/Esys_Shutdown.3 \
174 doxygen-doc/man/Esys_Sign.3 \
175 doxygen-doc/man/Esys_StartAuthSession.3 \
176 doxygen-doc/man/Esys_Startup.3 \
177 doxygen-doc/man/Esys_StirRandom.3 \
178 doxygen-doc/man/Esys_TestParms.3 \
179 doxygen-doc/man/Esys_Unseal.3 \
180 doxygen-doc/man/Esys_Vendor_TCG_Test.3 \
181 doxygen-doc/man/Esys_VerifySignature.3 \
182 doxygen-doc/man/Esys_ZGen_2Phase.3
Andreas Fuchse5273b32018-04-26 16:16:24 +0200183$(DOXYMAN3): doxygen-doc
184else #DOXYMAN
185DOXYMAN3 =
186endif #DOXYMAN
187
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100188### Include make files ###
189# Add source code files from bootstrap
190include src_vars.mk
Andreas Fuchs24fb1302017-11-22 10:21:18 +0100191
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100192# Add test definitions
193include Makefile-test.am
hp43ac71d2016-12-02 11:16:45 -0800194
John Andersen443455b2019-01-16 12:58:36 -0800195# Add fuzz definitions
196include Makefile-fuzz.am
197
dantpmd0899fe2018-04-06 14:26:05 -0700198### Distribution files ###
Javier Martinez Canillas0075f882018-04-13 12:49:37 +0200199# Add udev rule
Javier Martinez Canillas0075f882018-04-13 12:49:37 +0200200udevrules_DATA = dist/tpm-udev.rules
Javier Martinez Canillas0075f882018-04-13 12:49:37 +0200201
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100202# Adding user and developer information
203EXTRA_DIST += \
Philip Triccac0841fc2017-12-08 12:10:20 -0800204 CHANGELOG.md \
205 CONTRIBUTING.md \
206 INSTALL.md \
207 LICENSE \
Philip Triccae08f7552019-04-30 15:13:29 -0700208 MAINTAINERS \
Philip Triccac0841fc2017-12-08 12:10:20 -0800209 README.md \
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100210 RELEASE.md
Philip Tricca2bd4adb2015-09-25 00:14:16 -0700211
Philip Tricca2f3bff12019-04-30 13:52:01 -0700212# Windows code / core build files
213EXTRA_DIST += \
214 include/tss2/tss2_tcti_tbs.h \
215 lib/tss2-tcti-tbs.def \
216 src/tss2-tcti/tcti-tbs.c \
217 src/tss2-tcti/tcti-tbs.h \
218 src/tss2-tcti/tss2-tcti-tbs.vcxproj \
Andreas Fuchs8748a952019-05-22 13:37:35 +0200219 src/tss2-tcti/tss2-tcti-tbs.vcxproj.filters \
Philip Tricca2f3bff12019-04-30 13:52:01 -0700220 tpm2-tss.sln
221
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100222# Generate the AUTHORS file from git log
223AUTHORS :
224 $(AM_V_GEN)git log --format='%aN <%aE>' | grep -v 'users.noreply.github.com' | sort | \
225 uniq -c | sort -nr | sed 's/^\s*//' | cut -d" " -f2- > $@
226EXTRA_DIST += AUTHORS
Philip Triccab194be92016-03-15 13:27:09 -0700227
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100228# pkg-config setup. pc-file declarations happen in the corresponding modules
Дилян Палаузов9b2b06b2019-03-21 16:08:01 +0000229pkgconfig_DATA =
Jonas Witschel64b08022019-04-22 22:55:31 +0200230DISTCLEANFILES += $(pkgconfig_DATA)
Philip Triccae0a93d12017-06-29 08:42:34 -0700231
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800232# Base TSS2 headers
233tss2dir = $(includedir)/tss2
234tss2_HEADERS = \
235 $(srcdir)/include/tss2/tss2_common.h \
236 $(srcdir)/include/tss2/tss2_tcti.h \
Philip Tricca910f17c2018-03-15 12:38:37 -0700237 $(srcdir)/include/tss2/tss2_tpm2_types.h
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800238
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100239### Internal utility library
240libutil = libutil.la
241noinst_LTLIBRARIES += $(libutil)
Philip Tricca57360da2018-03-15 17:22:10 -0700242libutil_la_SOURCES = $(UTIL_SRC)
Philip Triccaa003ae62018-02-19 10:32:46 -0800243
dantpmd0899fe2018-04-06 14:26:05 -0700244### TCG TSS Marshaling/Unmarshaling spec library ###
Philip Triccaee730622018-03-10 16:40:41 -0800245libtss2_mu = src/tss2-mu/libtss2-mu.la
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800246tss2_HEADERS += $(srcdir)/include/tss2/tss2_mu.h
Philip Triccaee730622018-03-10 16:40:41 -0800247lib_LTLIBRARIES += $(libtss2_mu)
Дилян Палаузов9b2b06b2019-03-21 16:08:01 +0000248pkgconfig_DATA += lib/tss2-mu.pc
Philip Tricca2f3bff12019-04-30 13:52:01 -0700249EXTRA_DIST += lib/tss2-mu.map lib/tss2-mu.def src/tss2-mu/tss2-mu.vcxproj
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100250
David R. Bild1e49b4c2017-11-28 18:09:42 -0600251if HAVE_LD_VERSION_SCRIPT
Philip Triccaee730622018-03-10 16:40:41 -0800252src_tss2_mu_libtss2_mu_la_LDFLAGS = -Wl,--version-script=$(srcdir)/lib/tss2-mu.map
David R. Bild1e49b4c2017-11-28 18:09:42 -0600253endif # HAVE_LD_VERSION_SCRIPT
Philip Triccaee730622018-03-10 16:40:41 -0800254src_tss2_mu_libtss2_mu_la_LIBADD = $(libutil)
255src_tss2_mu_libtss2_mu_la_SOURCES = $(TSS2_MU_SRC)
Philip Tricca73609722017-02-10 10:50:06 -0800256
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100257### TCG TSS TCTI spec libraries ###
Philip Triccabe796452019-07-09 16:13:19 -0700258# tcti loader library
259libtss2_tctildr = src/tss2-tcti/libtss2-tctildr.la
260tss2_HEADERS += $(srcdir)/include/tss2/tss2_tctildr.h
261lib_LTLIBRARIES += $(libtss2_tctildr)
262pkgconfig_DATA += lib/tss2-tctildr.pc
263EXTRA_DIST += lib/tss2-tctildr.map
264
265src_tss2_tcti_libtss2_tctildr_la_CFLAGS = $(AM_CFLAGS)
266if HAVE_LD_VERSION_SCRIPT
267src_tss2_tcti_libtss2_tctildr_la_LDFLAGS = \
268 -Wl,--version-script=$(srcdir)/lib/tss2-tctildr.map
269endif # HAVE_LD_VERSION_SCRIPT
270src_tss2_tcti_libtss2_tctildr_la_LIBADD = $(libutil)
271src_tss2_tcti_libtss2_tctildr_la_SOURCES = \
272 src/tss2-tcti/tctildr.c src/tss2-tcti/tctildr.h \
273 src/tss2-tcti/tctildr-interface.h
274if NO_DL
275src_tss2_tcti_libtss2_tctildr_la_LIBADD += $(libtss2_tcti_device) $(libtss2_tcti_mssim)
276src_tss2_tcti_libtss2_tctildr_la_SOURCES += src/tss2-tcti/tctildr-nodl.c src/tss2-tcti/tctildr-nodl.h
277else
278src_tss2_tcti_libtss2_tctildr_la_LIBADD += $(LIBADD_DL)
279src_tss2_tcti_libtss2_tctildr_la_SOURCES += src/tss2-tcti/tctildr-dl.c src/tss2-tcti/tctildr-dl.h
280endif
281
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100282# tcti device library
Andreas Fuchs2b085e92018-05-02 16:42:47 +0200283if ENABLE_TCTI_DEVICE
Philip Triccab8584ac2018-03-10 17:02:30 -0800284libtss2_tcti_device = src/tss2-tcti/libtss2-tcti-device.la
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800285tss2_HEADERS += $(srcdir)/include/tss2/tss2_tcti_device.h
Philip Triccab8584ac2018-03-10 17:02:30 -0800286lib_LTLIBRARIES += $(libtss2_tcti_device)
Дилян Палаузов9b2b06b2019-03-21 16:08:01 +0000287pkgconfig_DATA += lib/tss2-tcti-device.pc
Jonas Witschel8ed533f2019-04-09 16:46:24 +0200288EXTRA_DIST += lib/tss2-tcti-device.map
Juergen Reppff821bd2017-12-11 15:21:42 +0100289
David R. Bild1e49b4c2017-11-28 18:09:42 -0600290if HAVE_LD_VERSION_SCRIPT
Philip Triccab8584ac2018-03-10 17:02:30 -0800291src_tss2_tcti_libtss2_tcti_device_la_LDFLAGS = -Wl,--version-script=$(srcdir)/lib/tss2-tcti-device.map
David R. Bild1e49b4c2017-11-28 18:09:42 -0600292endif # HAVE_LD_VERSION_SCRIPT
Philip Triccab8584ac2018-03-10 17:02:30 -0800293src_tss2_tcti_libtss2_tcti_device_la_LIBADD = $(libtss2_mu) $(libutil)
Philip Tricca850bb592018-04-03 09:29:22 -0700294src_tss2_tcti_libtss2_tcti_device_la_SOURCES = \
Дилян Палаузов18a11112019-03-22 20:56:30 +0000295 src/tss2-tcti/tcti-common.c \
296 src/tss2-tcti/tcti-device.c
Andreas Fuchs2b085e92018-05-02 16:42:47 +0200297endif # ENABLE_TCTI_DEVICE
Philip Tricca97e869f2015-11-03 20:19:44 -0500298
dantpmd0899fe2018-04-06 14:26:05 -0700299# tcti library for Microsoft TPM2 simulator
Andreas Fuchs2b085e92018-05-02 16:42:47 +0200300if ENABLE_TCTI_MSSIM
Philip Triccab8584ac2018-03-10 17:02:30 -0800301libtss2_tcti_mssim = src/tss2-tcti/libtss2-tcti-mssim.la
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800302tss2_HEADERS += $(srcdir)/include/tss2/tss2_tcti_mssim.h
Philip Triccab8584ac2018-03-10 17:02:30 -0800303lib_LTLIBRARIES += $(libtss2_tcti_mssim)
Дилян Палаузов9b2b06b2019-03-21 16:08:01 +0000304pkgconfig_DATA += lib/tss2-tcti-mssim.pc
Andreas Fuchs8748a952019-05-22 13:37:35 +0200305EXTRA_DIST += lib/tss2-tcti-mssim.map \
306 lib/tss2-tcti-mssim.def \
307 src/tss2-tcti/tss2-tcti-mssim.vcxproj \
308 src/tss2-tcti/tss2-tcti-mssim.vcxproj.filters
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100309
David R. Bild1e49b4c2017-11-28 18:09:42 -0600310if HAVE_LD_VERSION_SCRIPT
Philip Triccab8584ac2018-03-10 17:02:30 -0800311src_tss2_tcti_libtss2_tcti_mssim_la_LDFLAGS = -Wl,--version-script=$(srcdir)/lib/tss2-tcti-mssim.map
David R. Bild1e49b4c2017-11-28 18:09:42 -0600312endif # HAVE_LD_VERSION_SCRIPT
Jonas Witschel17a670d2019-01-13 12:52:48 +0100313src_tss2_tcti_libtss2_tcti_mssim_la_LIBADD = $(libtss2_mu) $(libutil)
Philip Tricca850bb592018-04-03 09:29:22 -0700314src_tss2_tcti_libtss2_tcti_mssim_la_SOURCES = \
Дилян Палаузов18a11112019-03-22 20:56:30 +0000315 src/tss2-tcti/tcti-common.c \
316 src/tss2-tcti/tcti-mssim.c
Andreas Fuchs2b085e92018-05-02 16:42:47 +0200317endif # ENABLE_TCTI_MSSIM
Philip Triccaa51ca972015-11-04 00:13:42 -0500318
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100319### TCG TSS SAPI spec library ###
Philip Tricca5f0ab552018-03-10 18:18:29 -0800320libtss2_sys = src/tss2-sys/libtss2-sys.la
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800321tss2_HEADERS += $(srcdir)/include/tss2/tss2_sys.h
Philip Tricca5f0ab552018-03-10 18:18:29 -0800322lib_LTLIBRARIES += $(libtss2_sys)
Дилян Палаузов9b2b06b2019-03-21 16:08:01 +0000323pkgconfig_DATA += lib/tss2-sys.pc
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800324
Philip Triccad5a6ff42018-03-13 18:19:42 -0700325src_tss2_sys_libtss2_sys_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/src/tss2-sys
Tadeusz Strukd4858c22019-05-21 16:54:01 -0700326src_tss2_sys_libtss2_sys_la_LDFLAGS = $(AM_LDFLAGS) $(LIBSOCKET_LDFLAGS)
327
328if HAVE_LD_VERSION_SCRIPT
329src_tss2_sys_libtss2_sys_la_LDFLAGS += -Wl,--version-script=$(srcdir)/lib/tss2-sys.map
330endif # HAVE_LD_VERSION_SCRIPT
Andreas Fuchs28164ad2018-03-16 13:33:26 +0100331src_tss2_sys_libtss2_sys_la_LIBADD = $(libtss2_mu) $(libutil)
Philip Tricca5f0ab552018-03-10 18:18:29 -0800332src_tss2_sys_libtss2_sys_la_SOURCES = $(TSS2_SYS_SRC)
Philip Tricca2f3bff12019-04-30 13:52:01 -0700333EXTRA_DIST += lib/tss2-sys.map lib/tss2-sys.def src/tss2-sys/tss2-sys.vcxproj
hp43ac71d2016-12-02 11:16:45 -0800334
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100335### TCG TSS ESAPI spec library ###
Juergen Reppff821bd2017-12-11 15:21:42 +0100336if ESAPI
Philip Tricca49635f42018-03-10 19:19:58 -0800337libtss2_esys = src/tss2-esys/libtss2-esys.la
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800338tss2_HEADERS += $(srcdir)/include/tss2/tss2_esys.h
Philip Tricca49635f42018-03-10 19:19:58 -0800339lib_LTLIBRARIES += $(libtss2_esys)
Дилян Палаузов9b2b06b2019-03-21 16:08:01 +0000340pkgconfig_DATA += lib/tss2-esys.pc
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800341
Juergen Reppbebbc7a2018-06-22 14:03:12 +0200342if ESYS_OSSL
Tadeusz Struk20f86d92019-04-15 10:49:58 -0700343TSS2_ESYS_SRC_CRYPTO = src/tss2-esys/esys_crypto_ossl.h src/tss2-esys/esys_crypto_ossl.c
Juergen Reppbebbc7a2018-06-22 14:03:12 +0200344else
345if ESYS_GCRYPT
Tadeusz Struk20f86d92019-04-15 10:49:58 -0700346TSS2_ESYS_SRC_CRYPTO = src/tss2-esys/esys_crypto_gcrypt.h src/tss2-esys/esys_crypto_gcrypt.c
Juergen Reppbebbc7a2018-06-22 14:03:12 +0200347endif
348endif
Philip Triccab258ab92019-06-28 13:52:14 -0700349
350src_tss2_esys_libtss2_esys_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/src/tss2-esys \
351 $(TSS2_ESYS_CFLAGS_CRYPTO)
352src_tss2_esys_libtss2_esys_la_LIBADD = $(libtss2_sys) $(libtss2_mu) $(libutil)
353
354src_tss2_esys_libtss2_esys_la_LDFLAGS = $(AM_LDFLAGS) $(LIBSOCKET_LDFLAGS) \
355 $(TSS2_ESYS_LDFLAGS_CRYPTO)
356if HAVE_LD_VERSION_SCRIPT
357src_tss2_esys_libtss2_esys_la_LDFLAGS += -Wl,--version-script=$(srcdir)/lib/tss2-esys.map
358endif # HAVE_LD_VERSION_SCRIPT
359src_tss2_esys_libtss2_esys_la_SOURCES = $(TSS2_ESYS_SRC) $(TSS2_ESYS_SRC_CRYPTO) \
Philip Tricca59e8eef2019-07-15 09:34:35 -0700360 src/tss2-tcti/tctildr.c src/tss2-tcti/tctildr.h \
361 src/tss2-tcti/tctildr-interface.h
Philip Triccab258ab92019-06-28 13:52:14 -0700362if NO_DL
363src_tss2_esys_libtss2_esys_la_LIBADD += $(libtss2_tcti_device) $(libtss2_tcti_mssim)
Philip Triccabe796452019-07-09 16:13:19 -0700364src_tss2_esys_libtss2_esys_la_SOURCES += src/tss2-tcti/tctildr-nodl.c src/tss2-tcti/tctildr-nodl.h
Philip Triccab258ab92019-06-28 13:52:14 -0700365else
366src_tss2_esys_libtss2_esys_la_LIBADD += $(LIBADD_DL)
367src_tss2_esys_libtss2_esys_la_SOURCES += src/tss2-tcti/tctildr-dl.c src/tss2-tcti/tctildr-dl.h
368endif
Andreas Fuchs8748a952019-05-22 13:37:35 +0200369EXTRA_DIST += lib/tss2-esys.map \
370 lib/tss2-esys.def \
371 src/tss2-esys/tss2-esys.vcxproj \
372 src/tss2-esys/tss2-esys.vcxproj.filters
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100373endif #ESAPI
Juergen Reppecd44eb2018-02-23 13:41:16 +0100374
William Robertsbc76d5a2019-07-10 14:04:06 -0500375### TCG TSS error decoding spec library ###
376libtss2_rc = src/tss2-rc/libtss2-rc.la
377tss2_HEADERS += $(srcdir)/include/tss2/tss2_rc.h
378lib_LTLIBRARIES += $(libtss2_rc)
379pkgconfig_DATA += lib/tss2-rc.pc
380EXTRA_DIST += lib/tss2-rc.map lib/tss2-rc.def
381
382if HAVE_LD_VERSION_SCRIPT
383src_tss2_rc_libtss2_rc_la_LDFLAGS = -Wl,--version-script=$(srcdir)/lib/tss2-rc.map
384endif # HAVE_LD_VERSION_SCRIPT
385src_tss2_rc_libtss2_rc_la_SOURCES = $(TSS2_RC_SRC)
386
Juergen Repp6da95b02019-10-10 11:46:03 +0200387
388### TCG TSS FAPI spec library ###
389if FAPI
390fapiconfdir = @sysconfdir@/tpm2-tss
391fapiconf_DATA = fapi-config.json
392
393EXTRA_DIST += dist/fapi-config.json.in
394CLEANFILES += fapi-config.json
395
396# We have to do this ourselves, in order to get absolute paths
397fapi-config.json: dist/fapi-config.json.in
398 $(AM_V_GEN) $(SED) \
399 -e 's|[@]prefix@|$(prefix)|g' \
400 -e 's|[@]datarootdir@|$(datarootdir)|g' \
401 -e 's|[@]datadir@|$(datadir)|g' \
402 -e 's|[@]sysconfdir@|$(sysconfdir)|g' \
403 -e 's|[@]sharedstatedir@|$(sharedstatedir)|g' \
404 -e 's|[@]localstatedir@|$(localstatedir)|g' \
405 -e 's|[@]runstatedir@|$(runstatedir)|g' \
406 -e 's|[@]userstatedir@|$(userstatedir)|g' \
407 < "$<" > "$@"
408
Jonas Witschelc43f3c22019-12-20 13:28:17 +0100409sysusers_DATA = dist/sysusers.d/tpm2-tss.conf
Jonas Witschel8a8eef12019-12-20 13:15:16 +0100410tmpfiles_DATA = tpm2-tss-fapi.conf
Juergen Repp6da95b02019-10-10 11:46:03 +0200411
Jonas Witschelc43f3c22019-12-20 13:28:17 +0100412EXTRA_DIST += dist/sysusers.d/tpm2-tss.conf dist/tmpfiles.d/tpm2-tss-fapi.conf.in
Jonas Witschel8a8eef12019-12-20 13:15:16 +0100413CLEANFILES += tpm2-tss-fapi.conf
Juergen Repp6da95b02019-10-10 11:46:03 +0200414
415# We have to do this ourselves, in order to get absolute paths
Jonas Witschel8a8eef12019-12-20 13:15:16 +0100416tpm2-tss-fapi.conf: dist/tmpfiles.d/tpm2-tss-fapi.conf.in
Juergen Repp6da95b02019-10-10 11:46:03 +0200417 $(AM_V_GEN) $(SED) \
Jonas Witschelde73fda2019-12-20 11:39:06 +0100418 -e 's|[@]localstatedir@|$(localstatedir)|g' \
Juergen Repp6da95b02019-10-10 11:46:03 +0200419 -e 's|[@]runstatedir@|$(runstatedir)|g' \
420 < "$<" > "$@"
421
422EXTRA_DIST += dist/fapi-profiles/P_RSA2048SHA256.json \
423 dist/fapi-profiles/P_ECCP256SHA256.json
424
425fapiprofilesdir = @sysconfdir@/tpm2-tss/fapi-profiles
426fapiprofiles_DATA = dist/fapi-profiles/P_RSA2048SHA256.json \
427 dist/fapi-profiles/P_ECCP256SHA256.json
428
Juergen Repp6da95b02019-10-10 11:46:03 +0200429libtss2_fapi = src/tss2-fapi/libtss2-fapi.la
430tss2_HEADERS += $(srcdir)/include/tss2/tss2_fapi.h
431lib_LTLIBRARIES += $(libtss2_fapi)
432pkgconfig_DATA += lib/tss2-fapi.pc
433EXTRA_DIST += \
434 lib/tss2-fapi.map \
435 lib/tss2-fapi.def \
436 test/data/fapi/P_RSA_EK_persistent.json \
437 test/data/fapi/P_RSA.json \
438 test/data/fapi/P_RSA_sh_policy.json \
439 test/data/fapi/P_RSA256.json \
440 test/data/fapi/P_ECC.json \
441 test/data/fapi/policy/pol_pcr16_0.json \
442 test/data/fapi/policy/pol_pcr16_0_fail.json \
443 test/data/fapi/policy/pol_pcr16_0_or.json \
444 test/data/fapi/policy/pol_nv.json \
445 test/data/fapi/policy/pol_nv_written.json \
446 test/data/fapi/policy/pol_signed.json \
Juergen Reppe41a6922020-01-07 16:58:14 +0100447 test/data/fapi/policy/pol_signed_ecc.json \
Juergen Repp6da95b02019-10-10 11:46:03 +0200448 test/data/fapi/policy/pol_authorize.json \
Andreas Fuchsd921e3b2020-02-03 15:23:43 +0100449 test/data/fapi/policy/pol_authorize_outer.json \
Juergen Repp6da95b02019-10-10 11:46:03 +0200450 test/data/fapi/policy/pol_authorize_nv.json \
451 test/data/fapi/policy/pol_secret.json \
452 test/data/fapi/policy/pol_password.json \
453 test/data/fapi/policy/pol_auth_value.json \
454 test/data/fapi/policy/pol_command_code.json \
455 test/data/fapi/policy/pol_locality.json \
456 test/data/fapi/policy/pol_physical_presence.json \
457 test/data/fapi/policy/pol_duplicate.json \
458 test/data/fapi/policy/pol_nv_change_auth.json \
459 test/data/fapi/policy/pol_countertimer.json \
460 test/data/fapi/policy/pol_name_hash.json \
461 test/data/fapi/policy/pol_pcr16_read.json \
462 test/data/fapi/policy/pol_action.json \
463 test/data/fapi/policy/pol_cphash.json
464
465src_tss2_fapi_libtss2_fapi_la_LIBADD = $(libtss2_sys) $(libtss2_mu) $(libtss2_esys) \
466 $(libutil) $(libtss2_tctildr)
467
468src_tss2_fapi_libtss2_fapi_la_SOURCES = $(TSS2_FAPI_SRC)
469src_tss2_fapi_libtss2_fapi_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/src/tss2-fapi
Jonas Witschel7edb1942019-12-20 15:32:06 +0100470src_tss2_fapi_libtss2_fapi_la_LDFLAGS = $(AM_LDFLAGS) $(LIBCRYPTO_LIBS) $(JSON_C_LIBS) $(CURL_LIBS)
Juergen Repp6da95b02019-10-10 11:46:03 +0200471if HAVE_LD_VERSION_SCRIPT
472src_tss2_fapi_libtss2_fapi_la_LDFLAGS += -Wl,--version-script=$(srcdir)/lib/tss2-fapi.map
473endif # HAVE_LD_VERSION_SCRIPT
474
475
476if DOXYMAN
477DOXYMAN3 += \
478 doxygen-doc/man/Fapi_AuthorizePolicy.3 \
479 doxygen-doc/man/Fapi_ChangeAuth.3 \
480 doxygen-doc/man/Fapi_CreateKey.3 \
481 doxygen-doc/man/Fapi_CreateNv.3 \
482 doxygen-doc/man/Fapi_CreateSeal.3 \
483 doxygen-doc/man/Fapi_Decrypt.3 \
484 doxygen-doc/man/Fapi_Delete.3 \
485 doxygen-doc/man/Fapi_Encrypt.3 \
486 doxygen-doc/man/Fapi_ExportKey.3 \
487 doxygen-doc/man/Fapi_ExportPolicy.3 \
488 doxygen-doc/man/Fapi_Finalize.3 \
489 doxygen-doc/man/Fapi_Free.3 \
490 doxygen-doc/man/Fapi_GetAppData.3 \
491 doxygen-doc/man/Fapi_GetCertificate.3 \
492 doxygen-doc/man/Fapi_GetDescription.3 \
493 doxygen-doc/man/Fapi_GetInfo.3 \
494 doxygen-doc/man/Fapi_GetPlatformCertificates.3 \
495 doxygen-doc/man/Fapi_GetPollHandles.3 \
496 doxygen-doc/man/Fapi_GetRandom.3 \
497 doxygen-doc/man/Fapi_GetTcti.3 \
498 doxygen-doc/man/Fapi_GetTpmBlobs.3 \
499 doxygen-doc/man/Fapi_Import.3 \
500 doxygen-doc/man/Fapi_Initialize.3 \
501 doxygen-doc/man/Fapi_List.3 \
502 doxygen-doc/man/Fapi_NvExtend.3 \
503 doxygen-doc/man/Fapi_NvIncrement.3 \
504 doxygen-doc/man/Fapi_NvRead.3 \
505 doxygen-doc/man/Fapi_NvSetBits.3 \
506 doxygen-doc/man/Fapi_NvWrite.3 \
507 doxygen-doc/man/Fapi_PcrExtend.3 \
508 doxygen-doc/man/Fapi_PcrRead.3 \
509 doxygen-doc/man/Fapi_Provision.3 \
510 doxygen-doc/man/Fapi_Quote.3 \
511 doxygen-doc/man/Fapi_SetAppData.3 \
512 doxygen-doc/man/Fapi_SetAuthCB.3 \
513 doxygen-doc/man/Fapi_SetBranchCB.3 \
514 doxygen-doc/man/Fapi_SetCertificate.3 \
515 doxygen-doc/man/Fapi_SetDescription.3 \
516 doxygen-doc/man/Fapi_SetSignCB.3 \
517 doxygen-doc/man/Fapi_Sign.3 \
518 doxygen-doc/man/FapiTestgroup.3 \
519 doxygen-doc/man/Fapi_Unseal.3 \
520 doxygen-doc/man/Fapi_VerifyQuote.3 \
521 doxygen-doc/man/Fapi_VerifySignature.3 \
522 doxygen-doc/man/Fapi_WriteAuthorizeNv.3
523endif #DOXYMAN
524
525endif #FAPI
526
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100527### Man Pages
Philip Triccabe796452019-07-09 16:13:19 -0700528man3_MANS = \
529 man/man3/Tss2_Tcti_Device_Init.3 \
530 man/man3/Tss2_Tcti_Mssim_Init.3 \
531 man/man3/Tss2_TctiLdr_Finalize.3 \
Philip Tricca24014ec2019-06-21 19:27:18 -0700532 man/man3/Tss2_TctiLdr_FreeInfo.3 \
533 man/man3/Tss2_TctiLdr_GetInfo.3 \
Philip Triccabe796452019-07-09 16:13:19 -0700534 man/man3/Tss2_TctiLdr_Initialize.3 \
535 $(DOXYMAN3)
536
537man7_MANS = \
538 man/man7/tss2-tcti-device.7 \
539 man/man7/tss2-tcti-mssim.7 \
540 man/man7/tss2-tctildr.7
Philip Tricca7ae01542016-05-05 18:45:03 -0700541
Philip Triccafe671682017-06-04 19:14:31 -0700542man/man3/%.3 : man/%.3.in $(srcdir)/man/man-postlude.troff
Andreas Fuchs3c965e72017-11-24 16:16:20 +0100543 $(AM_V_GEN)$(call make_man,$@,$<,$(srcdir)/man/man-postlude.troff)
Philip Triccafe671682017-06-04 19:14:31 -0700544
Philip Tricca632c4312017-06-05 11:58:08 -0700545man/man7/%.7 : man/%.7.in $(srcdir)/man/man-postlude.troff
Andreas Fuchs3c965e72017-11-24 16:16:20 +0100546 $(AM_V_GEN)$(call make_man,$@,$<,$(srcdir)/man/man-postlude.troff)
Philip Tricca632c4312017-06-05 11:58:08 -0700547
Philip Triccaebb398e2019-07-15 22:05:12 -0700548install-man: install-man3 install-man7
Tadeusz Struk185659c2019-07-30 14:03:54 -0700549 $(LN_S) -f Tss2_TctiLdr_Initialize.3 $(DESTDIR)$(man3dir)/Tss2_TctiLdr_Initialize_Ex.3
Philip Triccaebb398e2019-07-15 22:05:12 -0700550
Javier Martinez Canillas0075f882018-04-13 12:49:37 +0200551EXTRA_DIST += dist/tpm-udev.rules
552
553if WITH_UDEVRULESPREFIX
554install-data-hook:
555 mv $(DESTDIR)$(udevrulesdir)/tpm-udev.rules $(DESTDIR)$(udevrulesdir)/$(udevrulesprefix)tpm-udev.rules
556
557uninstall-local:
558 -rm $(DESTDIR)$(udevrulesdir)/$(udevrulesprefix)tpm-udev.rules
559endif
560
Jonas Witschel75028872019-12-20 17:27:55 +0100561# Create tss user and FAPI directories directly after installation (vs. after a reboot)
562install-exec-hook:
563 systemd-sysusers && systemd-tmpfiles --create || true
564
Tadeusz Struk1a4a8bc2019-07-30 10:28:10 -0700565uninstall-hook:
Tadeusz Struk185659c2019-07-30 14:03:54 -0700566 cd $(DESTDIR)$(man3dir) && \
567 [ -L Tss2_TctiLdr_Initialize_Ex.3 ] && \
568 rm -f Tss2_TctiLdr_Initialize_Ex.3 || true
Tadeusz Struk1a4a8bc2019-07-30 10:28:10 -0700569
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100570EXTRA_DIST += \
Jonas Witschel3e2c09a2019-01-09 23:37:34 +0100571 doc/doxygen.dox \
Tadeusz Strukb62a7522019-02-04 14:31:58 -0800572 doc/coding_standard_c.md \
573 doc/logging.md \
Tadeusz Struk92f8d452019-03-01 12:10:33 -0800574 doc/fuzzing.md \
Andreas Fuchs8c126a72019-05-22 13:31:53 +0200575 doc/TSS_block_diagram.png \
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100576 man/man-postlude.troff \
Philip Tricca5a235282018-02-27 14:59:49 -0800577 man/Tss2_Tcti_Device_Init.3.in \
Philip Triccaaddad782018-03-09 11:42:05 -0800578 man/Tss2_Tcti_Mssim_Init.3.in \
Philip Triccabe796452019-07-09 16:13:19 -0700579 man/Tss2_TctiLdr_Finalize.3.in \
Philip Tricca24014ec2019-06-21 19:27:18 -0700580 man/Tss2_TctiLdr_FreeInfo.3.in \
581 man/Tss2_TctiLdr_GetInfo.3.in \
Philip Triccabe796452019-07-09 16:13:19 -0700582 man/Tss2_TctiLdr_Initialize.3.in \
Philip Triccab8584ac2018-03-10 17:02:30 -0800583 man/tss2-tcti-device.7.in \
Philip Triccabe796452019-07-09 16:13:19 -0700584 man/tss2-tcti-mssim.7.in \
585 man/tss2-tctildr.7.in
Philip Tricca632c4312017-06-05 11:58:08 -0700586
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100587CLEANFILES += \
588 $(man3_MANS) \
589 $(man7_MANS)
590
591### Helper Functions ###
Philip Tricca632c4312017-06-05 11:58:08 -0700592define make_parent_dir
593 if [ ! -d $(dir $1) ]; then mkdir -p $(dir $1); fi
594endef
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100595
Philip Triccafe671682017-06-04 19:14:31 -0700596# function to transform man .in files to man pages
597# $1: target
598# $2: .in file
599# $3: man postlude file
600define make_man
Andreas Fuchs3c965e72017-11-24 16:16:20 +0100601 $(call make_parent_dir,$1) && \
602 cat $2 $3 > $1 && \
Philip Triccafe671682017-06-04 19:14:31 -0700603 sed -i -e "s,[@]VERSION[@],$(PACKAGE_VERSION),g;" $1
604endef