blob: 741de89470000e77a1fbdad02f7e4998a4d0e8e0 [file] [log] [blame]
Philip Triccac054cf92018-11-11 11:06:00 -08001# SPDX-License-Identifier: BSD-2
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 Fuchs0dc7c292018-02-28 20:01:13 +01006### Initialize global variables used throughout the file ###
Philip Triccad5a6ff42018-03-13 18:19:42 -07007INCLUDE_DIRS = -I$(srcdir)/src -I$(srcdir)/include/tss2
Alon Bar-Levd1106342019-01-11 19:29:52 +02008ACLOCAL_AMFLAGS = -I m4 --install
Andreas Fuchs61cb7fb2017-11-22 10:23:01 +01009AM_CFLAGS = $(INCLUDE_DIRS) $(EXTRA_CFLAGS) $(CODE_COVERAGE_CFLAGS)
10AM_LDFLAGS = $(EXTRA_LDFLAGS) $(CODE_COVERAGE_LIBS)
Philip Triccaa509a682015-09-14 15:34:52 -070011
Andreas Fuchs0dc7c292018-02-28 20:01:13 +010012# Initialize empty variables to be extended throughout
13lib_LTLIBRARIES =
14noinst_LTLIBRARIES =
15EXTRA_DIST =
16CLEANFILES =
17MOSTLYCLEANFILES =
Andreas Fuchsa0eda362018-03-28 11:56:42 +020018noinst_PROGRAMS =
Philip Tricca4334dee2016-08-09 19:56:28 -070019
Andreas Fuchs0dc7c292018-02-28 20:01:13 +010020### Add ax_* rules ###
21# ax_code_coverage
22@CODE_COVERAGE_RULES@
Juergen Reppff821bd2017-12-11 15:21:42 +010023
Andreas Fuchs0dc7c292018-02-28 20:01:13 +010024# ax_doxygen
25@DX_RULES@
26MOSTLYCLEANFILES += $(DX_CLEANFILES)
Philip Tricca99d41422017-06-18 15:11:50 -070027
Andreas Fuchse5273b32018-04-26 16:16:24 +020028if DOXYMAN
29DOXYMAN3 = \
Jonas Witscheldd54f332018-11-14 22:17:34 +010030 doxygen-doc/man/ESYS_CONTEXT.3 \
31 doxygen-doc/man/ESYS_TR.3 \
32 doxygen-doc/man/ESYS_TR_defines.3 \
33 doxygen-doc/man/Esys_ActivateCredential.3 \
34 doxygen-doc/man/Esys_Certify.3 \
35 doxygen-doc/man/Esys_CertifyCreation.3 \
36 doxygen-doc/man/Esys_ChangeEPS.3 \
37 doxygen-doc/man/Esys_ChangePPS.3 \
38 doxygen-doc/man/Esys_Clear.3 \
39 doxygen-doc/man/Esys_ClearControl.3 \
40 doxygen-doc/man/Esys_ClockRateAdjust.3 \
41 doxygen-doc/man/Esys_ClockSet.3 \
42 doxygen-doc/man/Esys_Commit.3 \
43 doxygen-doc/man/Esys_ContextLoad.3 \
44 doxygen-doc/man/Esys_ContextSave.3 \
45 doxygen-doc/man/Esys_Create.3 \
46 doxygen-doc/man/Esys_CreatePrimary.3 \
47 doxygen-doc/man/Esys_DictionaryAttackLockReset.3 \
48 doxygen-doc/man/Esys_DictionaryAttackParameters.3 \
49 doxygen-doc/man/Esys_Duplicate.3 \
50 doxygen-doc/man/Esys_ECC_Parameters.3 \
51 doxygen-doc/man/Esys_ECDH_KeyGen.3 \
52 doxygen-doc/man/Esys_ECDH_ZGen.3 \
53 doxygen-doc/man/Esys_EC_Ephemeral.3 \
54 doxygen-doc/man/Esys_EncryptDecrypt.3 \
55 doxygen-doc/man/Esys_EventSequenceComplete.3 \
56 doxygen-doc/man/Esys_EvictControl.3 \
57 doxygen-doc/man/Esys_FlushContext.3 \
58 doxygen-doc/man/Esys_GetCapability.3 \
59 doxygen-doc/man/Esys_GetCommandAuditDigest.3 \
60 doxygen-doc/man/Esys_GetRandom.3 \
61 doxygen-doc/man/Esys_GetSessionAuditDigest.3 \
62 doxygen-doc/man/Esys_GetTestResult.3 \
63 doxygen-doc/man/Esys_GetTime.3 \
64 doxygen-doc/man/Esys_Hash.3 \
65 doxygen-doc/man/Esys_HashSequenceStart.3 \
66 doxygen-doc/man/Esys_HierarchyChangeAuth.3 \
67 doxygen-doc/man/Esys_HierarchyControl.3 \
68 doxygen-doc/man/Esys_HMAC.3 \
69 doxygen-doc/man/Esys_HMAC_Start.3 \
70 doxygen-doc/man/Esys_Import.3 \
71 doxygen-doc/man/Esys_IncrementalSelfTest.3 \
72 doxygen-doc/man/Esys_Load.3 \
73 doxygen-doc/man/Esys_LoadExternal.3 \
74 doxygen-doc/man/Esys_MakeCredential.3 \
75 doxygen-doc/man/Esys_NV_Certify.3 \
76 doxygen-doc/man/Esys_NV_ChangeAuth.3 \
77 doxygen-doc/man/Esys_NV_DefineSpace.3 \
78 doxygen-doc/man/Esys_NV_Extend.3 \
79 doxygen-doc/man/Esys_NV_GlobalWriteLock.3 \
80 doxygen-doc/man/Esys_NV_Increment.3 \
81 doxygen-doc/man/Esys_NV_Read.3 \
82 doxygen-doc/man/Esys_NV_ReadLock.3 \
83 doxygen-doc/man/Esys_NV_ReadPublic.3 \
84 doxygen-doc/man/Esys_NV_SetBits.3 \
85 doxygen-doc/man/Esys_NV_UndefineSpace.3 \
86 doxygen-doc/man/Esys_NV_UndefineSpaceSpecial.3 \
87 doxygen-doc/man/Esys_NV_Write.3 \
88 doxygen-doc/man/Esys_NV_WriteLock.3 \
89 doxygen-doc/man/Esys_ObjectChangeAuth.3 \
90 doxygen-doc/man/Esys_PCR_Allocate.3 \
91 doxygen-doc/man/Esys_PCR_Event.3 \
92 doxygen-doc/man/Esys_PCR_Extend.3 \
93 doxygen-doc/man/Esys_PCR_Read.3 \
94 doxygen-doc/man/Esys_PCR_Reset.3 \
95 doxygen-doc/man/Esys_PCR_SetAuthPolicy.3 \
96 doxygen-doc/man/Esys_PCR_SetAuthValue.3 \
97 doxygen-doc/man/Esys_PolicyAuthorize.3 \
98 doxygen-doc/man/Esys_PolicyAuthValue.3 \
99 doxygen-doc/man/Esys_PolicyCommandCode.3 \
100 doxygen-doc/man/Esys_PolicyCounterTimer.3 \
101 doxygen-doc/man/Esys_PolicyCpHash.3 \
102 doxygen-doc/man/Esys_PolicyDuplicationSelect.3 \
103 doxygen-doc/man/Esys_PolicyGetDigest.3 \
104 doxygen-doc/man/Esys_PolicyLocality.3 \
105 doxygen-doc/man/Esys_PolicyNameHash.3 \
106 doxygen-doc/man/Esys_PolicyNV.3 \
107 doxygen-doc/man/Esys_PolicyNvWritten.3 \
108 doxygen-doc/man/Esys_PolicyOR.3 \
109 doxygen-doc/man/Esys_PolicyPassword.3 \
110 doxygen-doc/man/Esys_PolicyPCR.3 \
111 doxygen-doc/man/Esys_PolicyPhysicalPresence.3 \
112 doxygen-doc/man/Esys_PolicyRestart.3 \
113 doxygen-doc/man/Esys_PolicySecret.3 \
114 doxygen-doc/man/Esys_PolicySigned.3 \
115 doxygen-doc/man/Esys_PolicyTicket.3 \
116 doxygen-doc/man/Esys_PP_Commands.3 \
117 doxygen-doc/man/Esys_Quote.3 \
118 doxygen-doc/man/Esys_ReadClock.3 \
119 doxygen-doc/man/Esys_ReadPublic.3 \
120 doxygen-doc/man/Esys_Rewrap.3 \
121 doxygen-doc/man/Esys_RSA_Decrypt.3 \
122 doxygen-doc/man/Esys_RSA_Encrypt.3 \
123 doxygen-doc/man/Esys_SelfTest.3 \
124 doxygen-doc/man/Esys_SequenceComplete.3 \
125 doxygen-doc/man/Esys_SequenceUpdate.3 \
126 doxygen-doc/man/Esys_SetAlgorithmSet.3 \
127 doxygen-doc/man/Esys_SetCommandCodeAuditStatus.3 \
128 doxygen-doc/man/Esys_SetPrimaryPolicy.3 \
129 doxygen-doc/man/Esys_Shutdown.3 \
130 doxygen-doc/man/Esys_Sign.3 \
131 doxygen-doc/man/Esys_StartAuthSession.3 \
132 doxygen-doc/man/Esys_Startup.3 \
133 doxygen-doc/man/Esys_StirRandom.3 \
134 doxygen-doc/man/Esys_TestParms.3 \
135 doxygen-doc/man/Esys_Unseal.3 \
136 doxygen-doc/man/Esys_Vendor_TCG_Test.3 \
137 doxygen-doc/man/Esys_VerifySignature.3 \
138 doxygen-doc/man/Esys_ZGen_2Phase.3
Andreas Fuchse5273b32018-04-26 16:16:24 +0200139$(DOXYMAN3): doxygen-doc
140else #DOXYMAN
141DOXYMAN3 =
142endif #DOXYMAN
143
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100144### Include make files ###
145# Add source code files from bootstrap
146include src_vars.mk
Andreas Fuchs24fb1302017-11-22 10:21:18 +0100147
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100148# Add test definitions
149include Makefile-test.am
hp43ac71d2016-12-02 11:16:45 -0800150
dantpmd0899fe2018-04-06 14:26:05 -0700151### Distribution files ###
Javier Martinez Canillas0075f882018-04-13 12:49:37 +0200152# Add udev rule
Javier Martinez Canillas0075f882018-04-13 12:49:37 +0200153udevrules_DATA = dist/tpm-udev.rules
Javier Martinez Canillas0075f882018-04-13 12:49:37 +0200154
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100155# Adding user and developer information
156EXTRA_DIST += \
Philip Triccac0841fc2017-12-08 12:10:20 -0800157 CHANGELOG.md \
158 CONTRIBUTING.md \
159 INSTALL.md \
160 LICENSE \
161 README.md \
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100162 RELEASE.md
Philip Tricca2bd4adb2015-09-25 00:14:16 -0700163
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100164# Generate the AUTHORS file from git log
165AUTHORS :
166 $(AM_V_GEN)git log --format='%aN <%aE>' | grep -v 'users.noreply.github.com' | sort | \
167 uniq -c | sort -nr | sed 's/^\s*//' | cut -d" " -f2- > $@
168EXTRA_DIST += AUTHORS
169CLEANFILES += AUTHORS
Philip Triccab194be92016-03-15 13:27:09 -0700170
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100171# pkg-config setup. pc-file declarations happen in the corresponding modules
172pkgconfigdir = $(libdir)/pkgconfig
173nodist_pkgconfig_DATA =
174CLEANFILES += $(nodist_pkgconfig_DATA)
Philip Triccae0a93d12017-06-29 08:42:34 -0700175
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100176%.pc : %.pc.in
177 $(AM_V_GEN)$(call make_parent_dir,$@) && \
178 sed -e "s,[@]VERSION[@],$(PACKAGE_VERSION),g; \
179 s,[@]libdir[@],$(libdir),g; \
180 s,[@]includedir[@],$(includedir),g;" $^ > $@
Philip Tricca6f634c42016-07-23 12:32:15 -0700181
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800182# Base TSS2 headers
183tss2dir = $(includedir)/tss2
184tss2_HEADERS = \
185 $(srcdir)/include/tss2/tss2_common.h \
186 $(srcdir)/include/tss2/tss2_tcti.h \
Philip Tricca910f17c2018-03-15 12:38:37 -0700187 $(srcdir)/include/tss2/tss2_tpm2_types.h
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800188
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100189### Internal utility library
190libutil = libutil.la
191noinst_LTLIBRARIES += $(libutil)
Philip Triccaa003ae62018-02-19 10:32:46 -0800192libutil_la_CFLAGS = $(AM_CFLAGS)
Philip Tricca57360da2018-03-15 17:22:10 -0700193libutil_la_SOURCES = $(UTIL_SRC)
Philip Triccaa003ae62018-02-19 10:32:46 -0800194
dantpmd0899fe2018-04-06 14:26:05 -0700195### TCG TSS Marshaling/Unmarshaling spec library ###
Philip Triccaee730622018-03-10 16:40:41 -0800196libtss2_mu = src/tss2-mu/libtss2-mu.la
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800197tss2_HEADERS += $(srcdir)/include/tss2/tss2_mu.h
Philip Triccaee730622018-03-10 16:40:41 -0800198lib_LTLIBRARIES += $(libtss2_mu)
199nodist_pkgconfig_DATA += lib/tss2-mu.pc
200EXTRA_DIST += lib/tss2-mu.map lib/tss2-mu.pc.in
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100201
David R. Bild1e49b4c2017-11-28 18:09:42 -0600202if HAVE_LD_VERSION_SCRIPT
Philip Triccaee730622018-03-10 16:40:41 -0800203src_tss2_mu_libtss2_mu_la_LDFLAGS = -Wl,--version-script=$(srcdir)/lib/tss2-mu.map
David R. Bild1e49b4c2017-11-28 18:09:42 -0600204endif # HAVE_LD_VERSION_SCRIPT
Philip Triccaee730622018-03-10 16:40:41 -0800205src_tss2_mu_libtss2_mu_la_LIBADD = $(libutil)
206src_tss2_mu_libtss2_mu_la_SOURCES = $(TSS2_MU_SRC)
Philip Tricca73609722017-02-10 10:50:06 -0800207
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100208### TCG TSS TCTI spec libraries ###
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100209# tcti device library
Andreas Fuchs2b085e92018-05-02 16:42:47 +0200210if ENABLE_TCTI_DEVICE
Philip Triccab8584ac2018-03-10 17:02:30 -0800211libtss2_tcti_device = src/tss2-tcti/libtss2-tcti-device.la
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800212tss2_HEADERS += $(srcdir)/include/tss2/tss2_tcti_device.h
Philip Triccab8584ac2018-03-10 17:02:30 -0800213lib_LTLIBRARIES += $(libtss2_tcti_device)
214nodist_pkgconfig_DATA += lib/tss2-tcti-device.pc
215EXTRA_DIST += lib/tss2-tcti-device.map lib/tss2-tcti-device.pc.in
Juergen Reppff821bd2017-12-11 15:21:42 +0100216
Philip Triccab8584ac2018-03-10 17:02:30 -0800217src_tss2_tcti_libtss2_tcti_device_la_CFLAGS = $(AM_CFLAGS)
David R. Bild1e49b4c2017-11-28 18:09:42 -0600218if HAVE_LD_VERSION_SCRIPT
Philip Triccab8584ac2018-03-10 17:02:30 -0800219src_tss2_tcti_libtss2_tcti_device_la_LDFLAGS = -Wl,--version-script=$(srcdir)/lib/tss2-tcti-device.map
David R. Bild1e49b4c2017-11-28 18:09:42 -0600220endif # HAVE_LD_VERSION_SCRIPT
Philip Triccab8584ac2018-03-10 17:02:30 -0800221src_tss2_tcti_libtss2_tcti_device_la_LIBADD = $(libtss2_mu) $(libutil)
Philip Tricca850bb592018-04-03 09:29:22 -0700222src_tss2_tcti_libtss2_tcti_device_la_SOURCES = \
223 src/tss2-tcti/tcti-common.c src/tss2-tcti/tcti-common.h \
224 src/tss2-tcti/tcti-device.c src/tss2-tcti/tcti-device.h
Andreas Fuchs2b085e92018-05-02 16:42:47 +0200225endif # ENABLE_TCTI_DEVICE
Philip Tricca97e869f2015-11-03 20:19:44 -0500226
dantpmd0899fe2018-04-06 14:26:05 -0700227# tcti library for Microsoft TPM2 simulator
Andreas Fuchs2b085e92018-05-02 16:42:47 +0200228if ENABLE_TCTI_MSSIM
Philip Triccab8584ac2018-03-10 17:02:30 -0800229libtss2_tcti_mssim = src/tss2-tcti/libtss2-tcti-mssim.la
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800230tss2_HEADERS += $(srcdir)/include/tss2/tss2_tcti_mssim.h
Philip Triccab8584ac2018-03-10 17:02:30 -0800231lib_LTLIBRARIES += $(libtss2_tcti_mssim)
232nodist_pkgconfig_DATA += lib/tss2-tcti-mssim.pc
233EXTRA_DIST += lib/tss2-tcti-mssim.map lib/tss2-tcti-mssim.pc.in
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100234
Tadeusz Struk91e7bd62018-07-23 11:30:02 -0700235AM_CFLAGS += -DTCTI_MSSIM
Jonas Witschel17a670d2019-01-13 12:52:48 +0100236src_tss2_tcti_libtss2_tcti_mssim_la_CFLAGS = $(AM_CFLAGS)
David R. Bild1e49b4c2017-11-28 18:09:42 -0600237if HAVE_LD_VERSION_SCRIPT
Philip Triccab8584ac2018-03-10 17:02:30 -0800238src_tss2_tcti_libtss2_tcti_mssim_la_LDFLAGS = -Wl,--version-script=$(srcdir)/lib/tss2-tcti-mssim.map
David R. Bild1e49b4c2017-11-28 18:09:42 -0600239endif # HAVE_LD_VERSION_SCRIPT
Jonas Witschel17a670d2019-01-13 12:52:48 +0100240src_tss2_tcti_libtss2_tcti_mssim_la_LIBADD = $(libtss2_mu) $(libutil)
Philip Tricca850bb592018-04-03 09:29:22 -0700241src_tss2_tcti_libtss2_tcti_mssim_la_SOURCES = \
242 src/tss2-tcti/tcti-common.c src/tss2-tcti/tcti-common.h \
243 src/tss2-tcti/tcti-mssim.c src/tss2-tcti/tcti-mssim.h
Andreas Fuchs2b085e92018-05-02 16:42:47 +0200244endif # ENABLE_TCTI_MSSIM
Philip Triccaa51ca972015-11-04 00:13:42 -0500245
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100246### TCG TSS SAPI spec library ###
Philip Tricca5f0ab552018-03-10 18:18:29 -0800247libtss2_sys = src/tss2-sys/libtss2-sys.la
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800248tss2_HEADERS += $(srcdir)/include/tss2/tss2_sys.h
Philip Tricca5f0ab552018-03-10 18:18:29 -0800249lib_LTLIBRARIES += $(libtss2_sys)
250nodist_pkgconfig_DATA += lib/tss2-sys.pc
251EXTRA_DIST += lib/tss2-sys.pc.in
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800252
Philip Triccad5a6ff42018-03-13 18:19:42 -0700253src_tss2_sys_libtss2_sys_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/src/tss2-sys
Safayet N Ahmed1354f492018-11-03 16:02:49 -0400254src_tss2_sys_libtss2_sys_la_LDFLAGS = $(AM_LDFLAGS) $(LIBSOCKET_LDFLAGS)
Andreas Fuchs28164ad2018-03-16 13:33:26 +0100255src_tss2_sys_libtss2_sys_la_LIBADD = $(libtss2_mu) $(libutil)
Philip Tricca5f0ab552018-03-10 18:18:29 -0800256src_tss2_sys_libtss2_sys_la_SOURCES = $(TSS2_SYS_SRC)
hp43ac71d2016-12-02 11:16:45 -0800257
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100258### TCG TSS ESAPI spec library ###
Juergen Reppff821bd2017-12-11 15:21:42 +0100259if ESAPI
Philip Tricca49635f42018-03-10 19:19:58 -0800260libtss2_esys = src/tss2-esys/libtss2-esys.la
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800261tss2_HEADERS += $(srcdir)/include/tss2/tss2_esys.h
Philip Tricca49635f42018-03-10 19:19:58 -0800262lib_LTLIBRARIES += $(libtss2_esys)
263nodist_pkgconfig_DATA += lib/tss2-esys.pc
264EXTRA_DIST += lib/tss2-esys.pc.in
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800265
Juergen Reppbebbc7a2018-06-22 14:03:12 +0200266
Philip Tricca49635f42018-03-10 19:19:58 -0800267src_tss2_esys_libtss2_esys_la_LIBADD = $(libtss2_sys) $(libtss2_mu) \
Philip Tricca5f0ab552018-03-10 18:18:29 -0800268 $(libtss2_tcti_device) $(libtss2_tcti_mssim) $(libutil)
Juergen Reppbebbc7a2018-06-22 14:03:12 +0200269
270if ESYS_OSSL
271TSS2_ESYS_SRC += src/tss2-esys/esys_crypto_ossl.h src/tss2-esys/esys_crypto_ossl.c
272src_tss2_esys_libtss2_esys_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/src/tss2-esys -DOSSL
Safayet N Ahmed1354f492018-11-03 16:02:49 -0400273src_tss2_esys_libtss2_esys_la_LDFLAGS = $(AM_LDFLAGS) $(LIBDL_LDFLAGS) $(LIBSOCKET_LDFLAGS) -lssl -lcrypto
Juergen Reppbebbc7a2018-06-22 14:03:12 +0200274else
275if ESYS_GCRYPT
276TSS2_ESYS_SRC += src/tss2-esys/esys_crypto_gcrypt.h src/tss2-esys/esys_crypto_gcrypt.c
277src_tss2_esys_libtss2_esys_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/src/tss2-esys
Safayet N Ahmed1354f492018-11-03 16:02:49 -0400278src_tss2_esys_libtss2_esys_la_LDFLAGS = $(AM_LDFLAGS) $(LIBDL_LDFLAGS) $(LIBSOCKET_LDFLAGS) -lgcrypt
Juergen Reppbebbc7a2018-06-22 14:03:12 +0200279endif
280endif
Philip Tricca49635f42018-03-10 19:19:58 -0800281src_tss2_esys_libtss2_esys_la_SOURCES = $(TSS2_ESYS_SRC)
Philip Tricca0f0516e2018-03-05 09:59:12 -0800282
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100283endif #ESAPI
Juergen Reppecd44eb2018-02-23 13:41:16 +0100284
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100285### Man Pages
Andreas Fuchse5273b32018-04-26 16:16:24 +0200286man3_MANS = man/man3/Tss2_Tcti_Device_Init.3 man/man3/Tss2_Tcti_Mssim_Init.3 $(DOXYMAN3)
Philip Triccab8584ac2018-03-10 17:02:30 -0800287man7_MANS = man/man7/tss2-tcti-device.7 man/man7/tss2-tcti-mssim.7
Philip Tricca7ae01542016-05-05 18:45:03 -0700288
Philip Triccafe671682017-06-04 19:14:31 -0700289man/man3/%.3 : man/%.3.in $(srcdir)/man/man-postlude.troff
Andreas Fuchs3c965e72017-11-24 16:16:20 +0100290 $(AM_V_GEN)$(call make_man,$@,$<,$(srcdir)/man/man-postlude.troff)
Philip Triccafe671682017-06-04 19:14:31 -0700291
Philip Tricca632c4312017-06-05 11:58:08 -0700292man/man7/%.7 : man/%.7.in $(srcdir)/man/man-postlude.troff
Andreas Fuchs3c965e72017-11-24 16:16:20 +0100293 $(AM_V_GEN)$(call make_man,$@,$<,$(srcdir)/man/man-postlude.troff)
Philip Tricca632c4312017-06-05 11:58:08 -0700294
Javier Martinez Canillas0075f882018-04-13 12:49:37 +0200295EXTRA_DIST += dist/tpm-udev.rules
296
297if WITH_UDEVRULESPREFIX
298install-data-hook:
299 mv $(DESTDIR)$(udevrulesdir)/tpm-udev.rules $(DESTDIR)$(udevrulesdir)/$(udevrulesprefix)tpm-udev.rules
300
301uninstall-local:
302 -rm $(DESTDIR)$(udevrulesdir)/$(udevrulesprefix)tpm-udev.rules
303endif
304
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100305EXTRA_DIST += \
Jonas Witschel3e2c09a2019-01-09 23:37:34 +0100306 doc/doxygen.dox \
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100307 man/man-postlude.troff \
Philip Tricca5a235282018-02-27 14:59:49 -0800308 man/Tss2_Tcti_Device_Init.3.in \
Philip Triccaaddad782018-03-09 11:42:05 -0800309 man/Tss2_Tcti_Mssim_Init.3.in \
Philip Triccab8584ac2018-03-10 17:02:30 -0800310 man/tss2-tcti-device.7.in \
311 man/tss2-tcti-mssim.7.in
Philip Tricca632c4312017-06-05 11:58:08 -0700312
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100313CLEANFILES += \
314 $(man3_MANS) \
315 $(man7_MANS)
316
317### Helper Functions ###
Philip Tricca632c4312017-06-05 11:58:08 -0700318define make_parent_dir
319 if [ ! -d $(dir $1) ]; then mkdir -p $(dir $1); fi
320endef
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100321
Philip Triccafe671682017-06-04 19:14:31 -0700322# function to transform man .in files to man pages
323# $1: target
324# $2: .in file
325# $3: man postlude file
326define make_man
Andreas Fuchs3c965e72017-11-24 16:16:20 +0100327 $(call make_parent_dir,$1) && \
328 cat $2 $3 > $1 && \
Philip Triccafe671682017-06-04 19:14:31 -0700329 sed -i -e "s,[@]VERSION[@],$(PACKAGE_VERSION),g;" $1
330endef