1# SPDX-License-Identifier: BSD-2-Clause 2# Copyright (c) 2015 - 2018 Intel Corporation 3# Copyright (c) 2018 Fraunhofer SIT sponsored by Infineon Technologies AG 4# All rights reserved. 5 6-include $(top_srcdir)/git.mk 7 8### Initialize global variables used throughout the file ### 9INCLUDE_DIRS = -I$(srcdir)/src -I$(srcdir)/include/tss2 10ACLOCAL_AMFLAGS = -I m4 --install 11AM_CFLAGS = $(INCLUDE_DIRS) $(EXTRA_CFLAGS) $(CODE_COVERAGE_CFLAGS) \ 12 $(SANITIZER_CFLAGS) 13AM_LDFLAGS = $(EXTRA_LDFLAGS) $(CODE_COVERAGE_LIBS) $(SANITIZER_LDFLAGS) 14 15# Initialize empty variables to be extended throughout 16lib_LTLIBRARIES = 17noinst_LTLIBRARIES = 18EXTRA_DIST = 19DISTCLEANFILES = 20CLEANFILES = 21MOSTLYCLEANFILES = 22noinst_PROGRAMS = 23MAINTAINERCLEANFILES = \ 24 $(DIST_ARCHIVES) \ 25 AUTHORS 26 27TSS_GITIGNOREFILES = \ 28 $(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 \ 37 m4/ax_add_fortify_source.m4 \ 38 m4/ax_am_macros_static.m4 \ 39 m4/ax_check_compile_flag.m4 \ 40 m4/ax_check_enable_debug.m4 \ 41 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 \ 46 m4/ax_is_release.m4 \ 47 m4/ax_normalize_path.m4 \ 48 m4/ax_prog_doxygen.m4 \ 49 m4/ax_valgrind_check.m4 \ 50 m4/pkg.m4 51 52GITIGNOREFILES = "" 53### Add ax_* rules ### 54# ax_code_coverage 55if AUTOCONF_CODE_COVERAGE_2019_01_06 56include $(top_srcdir)/aminclude_static.am 57clean-local: code-coverage-clean 58distclean-local: code-coverage-dist-clean 59else 60@CODE_COVERAGE_RULES@ 61endif 62GITIGNOREFILES += $(TSS_GITIGNOREFILES) 63CODE_COVERAGE_DIRECTORY = $(top_builddir)/src $(top_builddir)/test 64 65# ax_valgrind_check 66@VALGRIND_CHECK_RULES@ 67 68# ax_doxygen 69@DX_RULES@ 70MOSTLYCLEANFILES += $(DX_CLEANFILES) 71 72if DOXYMAN 73DOXYMAN3 = \ 74 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 183$(DOXYMAN3): doxygen-doc 184else #DOXYMAN 185DOXYMAN3 = 186endif #DOXYMAN 187 188### Include make files ### 189# Add source code files from bootstrap 190include src_vars.mk 191 192# Add test definitions 193include Makefile-test.am 194 195# Add fuzz definitions 196include Makefile-fuzz.am 197 198### Distribution files ### 199# Add udev rule 200udevrules_DATA = dist/tpm-udev.rules 201 202# Adding user and developer information 203EXTRA_DIST += \ 204 CHANGELOG.md \ 205 CONTRIBUTING.md \ 206 INSTALL.md \ 207 LICENSE \ 208 MAINTAINERS \ 209 README.md \ 210 RELEASE.md 211 212# 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 \ 219 src/tss2-tcti/tss2-tcti-tbs.vcxproj.filters \ 220 tpm2-tss.sln 221 222# 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 227 228# pkg-config setup. pc-file declarations happen in the corresponding modules 229pkgconfig_DATA = 230DISTCLEANFILES += $(pkgconfig_DATA) 231 232# Base TSS2 headers 233tss2dir = $(includedir)/tss2 234tss2_HEADERS = \ 235 $(srcdir)/include/tss2/tss2_common.h \ 236 $(srcdir)/include/tss2/tss2_tcti.h \ 237 $(srcdir)/include/tss2/tss2_tpm2_types.h 238 239### Internal utility library 240libutil = libutil.la 241noinst_LTLIBRARIES += $(libutil) 242libutil_la_SOURCES = $(UTIL_SRC) 243 244### TCG TSS Marshaling/Unmarshaling spec library ### 245libtss2_mu = src/tss2-mu/libtss2-mu.la 246tss2_HEADERS += $(srcdir)/include/tss2/tss2_mu.h 247lib_LTLIBRARIES += $(libtss2_mu) 248pkgconfig_DATA += lib/tss2-mu.pc 249EXTRA_DIST += lib/tss2-mu.map lib/tss2-mu.def src/tss2-mu/tss2-mu.vcxproj 250 251if HAVE_LD_VERSION_SCRIPT 252src_tss2_mu_libtss2_mu_la_LDFLAGS = -Wl,--version-script=$(srcdir)/lib/tss2-mu.map 253endif # HAVE_LD_VERSION_SCRIPT 254src_tss2_mu_libtss2_mu_la_LIBADD = $(libutil) 255src_tss2_mu_libtss2_mu_la_SOURCES = $(TSS2_MU_SRC) 256 257### TCG TSS TCTI spec libraries ### 258# 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 282# tcti device library 283if ENABLE_TCTI_DEVICE 284libtss2_tcti_device = src/tss2-tcti/libtss2-tcti-device.la 285tss2_HEADERS += $(srcdir)/include/tss2/tss2_tcti_device.h 286lib_LTLIBRARIES += $(libtss2_tcti_device) 287pkgconfig_DATA += lib/tss2-tcti-device.pc 288EXTRA_DIST += lib/tss2-tcti-device.map 289 290if HAVE_LD_VERSION_SCRIPT 291src_tss2_tcti_libtss2_tcti_device_la_LDFLAGS = -Wl,--version-script=$(srcdir)/lib/tss2-tcti-device.map 292endif # HAVE_LD_VERSION_SCRIPT 293src_tss2_tcti_libtss2_tcti_device_la_LIBADD = $(libtss2_mu) $(libutil) 294src_tss2_tcti_libtss2_tcti_device_la_SOURCES = \ 295 src/tss2-tcti/tcti-common.c \ 296 src/tss2-tcti/tcti-device.c 297endif # ENABLE_TCTI_DEVICE 298 299# tcti library for Microsoft TPM2 simulator 300if ENABLE_TCTI_MSSIM 301libtss2_tcti_mssim = src/tss2-tcti/libtss2-tcti-mssim.la 302tss2_HEADERS += $(srcdir)/include/tss2/tss2_tcti_mssim.h 303lib_LTLIBRARIES += $(libtss2_tcti_mssim) 304pkgconfig_DATA += lib/tss2-tcti-mssim.pc 305EXTRA_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 309 310if HAVE_LD_VERSION_SCRIPT 311src_tss2_tcti_libtss2_tcti_mssim_la_LDFLAGS = -Wl,--version-script=$(srcdir)/lib/tss2-tcti-mssim.map 312endif # HAVE_LD_VERSION_SCRIPT 313src_tss2_tcti_libtss2_tcti_mssim_la_LIBADD = $(libtss2_mu) $(libutil) 314src_tss2_tcti_libtss2_tcti_mssim_la_SOURCES = \ 315 src/tss2-tcti/tcti-common.c \ 316 src/tss2-tcti/tcti-mssim.c 317endif # ENABLE_TCTI_MSSIM 318 319### TCG TSS SAPI spec library ### 320libtss2_sys = src/tss2-sys/libtss2-sys.la 321tss2_HEADERS += $(srcdir)/include/tss2/tss2_sys.h 322lib_LTLIBRARIES += $(libtss2_sys) 323pkgconfig_DATA += lib/tss2-sys.pc 324 325src_tss2_sys_libtss2_sys_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/src/tss2-sys 326src_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 331src_tss2_sys_libtss2_sys_la_LIBADD = $(libtss2_mu) $(libutil) 332src_tss2_sys_libtss2_sys_la_SOURCES = $(TSS2_SYS_SRC) 333EXTRA_DIST += lib/tss2-sys.map lib/tss2-sys.def src/tss2-sys/tss2-sys.vcxproj 334 335### TCG TSS ESAPI spec library ### 336if ESAPI 337libtss2_esys = src/tss2-esys/libtss2-esys.la 338tss2_HEADERS += $(srcdir)/include/tss2/tss2_esys.h 339lib_LTLIBRARIES += $(libtss2_esys) 340pkgconfig_DATA += lib/tss2-esys.pc 341 342if ESYS_OSSL 343TSS2_ESYS_SRC_CRYPTO = src/tss2-esys/esys_crypto_ossl.h src/tss2-esys/esys_crypto_ossl.c 344else 345if ESYS_GCRYPT 346TSS2_ESYS_SRC_CRYPTO = src/tss2-esys/esys_crypto_gcrypt.h src/tss2-esys/esys_crypto_gcrypt.c 347endif 348endif 349 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) \ 360 src/tss2-tcti/tctildr.c src/tss2-tcti/tctildr.h \ 361 src/tss2-tcti/tctildr-interface.h 362if NO_DL 363src_tss2_esys_libtss2_esys_la_LIBADD += $(libtss2_tcti_device) $(libtss2_tcti_mssim) 364src_tss2_esys_libtss2_esys_la_SOURCES += src/tss2-tcti/tctildr-nodl.c src/tss2-tcti/tctildr-nodl.h 365else 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 369EXTRA_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 373endif #ESAPI 374 375### 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 387 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 409sysusers_DATA = dist/sysusers.d/tpm2-tss.conf 410tmpfiles_DATA = tpm2-tss-fapi.conf 411 412EXTRA_DIST += dist/sysusers.d/tpm2-tss.conf dist/tmpfiles.d/tpm2-tss-fapi.conf.in 413CLEANFILES += tpm2-tss-fapi.conf 414 415# We have to do this ourselves, in order to get absolute paths 416tpm2-tss-fapi.conf: dist/tmpfiles.d/tpm2-tss-fapi.conf.in 417 $(AM_V_GEN) $(SED) \ 418 -e 's|[@]localstatedir@|$(localstatedir)|g' \ 419 -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 429libtss2_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 \ 447 test/data/fapi/policy/pol_signed_ecc.json \ 448 test/data/fapi/policy/pol_authorize.json \ 449 test/data/fapi/policy/pol_authorize_outer.json \ 450 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 470src_tss2_fapi_libtss2_fapi_la_LDFLAGS = $(AM_LDFLAGS) $(LIBCRYPTO_LIBS) $(JSON_C_LIBS) $(CURL_LIBS) 471if 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 527### Man Pages 528man3_MANS = \ 529 man/man3/Tss2_Tcti_Device_Init.3 \ 530 man/man3/Tss2_Tcti_Mssim_Init.3 \ 531 man/man3/Tss2_TctiLdr_Finalize.3 \ 532 man/man3/Tss2_TctiLdr_FreeInfo.3 \ 533 man/man3/Tss2_TctiLdr_GetInfo.3 \ 534 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 541 542man/man3/%.3 : man/%.3.in $(srcdir)/man/man-postlude.troff 543 $(AM_V_GEN)$(call make_man,$@,$<,$(srcdir)/man/man-postlude.troff) 544 545man/man7/%.7 : man/%.7.in $(srcdir)/man/man-postlude.troff 546 $(AM_V_GEN)$(call make_man,$@,$<,$(srcdir)/man/man-postlude.troff) 547 548install-man: install-man3 install-man7 549 $(LN_S) -f Tss2_TctiLdr_Initialize.3 $(DESTDIR)$(man3dir)/Tss2_TctiLdr_Initialize_Ex.3 550 551EXTRA_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 561# Create tss user and FAPI directories directly after installation (vs. after a reboot) 562install-exec-hook: 563 systemd-sysusers && systemd-tmpfiles --create || true 564 565uninstall-hook: 566 cd $(DESTDIR)$(man3dir) && \ 567 [ -L Tss2_TctiLdr_Initialize_Ex.3 ] && \ 568 rm -f Tss2_TctiLdr_Initialize_Ex.3 || true 569 570EXTRA_DIST += \ 571 doc/doxygen.dox \ 572 doc/coding_standard_c.md \ 573 doc/logging.md \ 574 doc/fuzzing.md \ 575 doc/TSS_block_diagram.png \ 576 man/man-postlude.troff \ 577 man/Tss2_Tcti_Device_Init.3.in \ 578 man/Tss2_Tcti_Mssim_Init.3.in \ 579 man/Tss2_TctiLdr_Finalize.3.in \ 580 man/Tss2_TctiLdr_FreeInfo.3.in \ 581 man/Tss2_TctiLdr_GetInfo.3.in \ 582 man/Tss2_TctiLdr_Initialize.3.in \ 583 man/tss2-tcti-device.7.in \ 584 man/tss2-tcti-mssim.7.in \ 585 man/tss2-tctildr.7.in 586 587CLEANFILES += \ 588 $(man3_MANS) \ 589 $(man7_MANS) 590 591### Helper Functions ### 592define make_parent_dir 593 if [ ! -d $(dir $1) ]; then mkdir -p $(dir $1); fi 594endef 595 596# function to transform man .in files to man pages 597# $1: target 598# $2: .in file 599# $3: man postlude file 600define make_man 601 $(call make_parent_dir,$1) && \ 602 cat $2 $3 > $1 && \ 603 sed -i -e "s,[@]VERSION[@],$(PACKAGE_VERSION),g;" $1 604endef 605