blob: d78d23ff10ba1e25032c3215e3894915f7fd9b40 [file] [log] [blame]
Will Arthurca8e7f32015-08-03 15:35:19 -04001#;**********************************************************************;
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.
5#
Andreas Fuchs0dc7c292018-02-28 20:01:13 +01006# Redistribution and use in source and binary forms, with or without
Will Arthurca8e7f32015-08-03 15:35:19 -04007# modification, are permitted provided that the following conditions are met:
Andreas Fuchs0dc7c292018-02-28 20:01:13 +01008#
9# 1. Redistributions of source code must retain the above copyright notice,
Will Arthurca8e7f32015-08-03 15:35:19 -040010# this list of conditions and the following disclaimer.
Andreas Fuchs0dc7c292018-02-28 20:01:13 +010011#
12# 2. Redistributions in binary form must reproduce the above copyright notice,
13# this list of conditions and the following disclaimer in the documentation
Will Arthurca8e7f32015-08-03 15:35:19 -040014# and/or other materials provided with the distribution.
Andreas Fuchs0dc7c292018-02-28 20:01:13 +010015#
16# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
Will Arthurca8e7f32015-08-03 15:35:19 -040026# THE POSSIBILITY OF SUCH DAMAGE.
27#;**********************************************************************;
Andreas Fuchs2968c712018-02-01 18:22:47 +010028
Andreas Fuchs0dc7c292018-02-28 20:01:13 +010029### Initialize global variables used throughout the file ###
Philip Triccad5a6ff42018-03-13 18:19:42 -070030INCLUDE_DIRS = -I$(srcdir)/src -I$(srcdir)/include/tss2
Philip Triccaa509a682015-09-14 15:34:52 -070031ACLOCAL_AMFLAGS = -I m4
Andreas Fuchs61cb7fb2017-11-22 10:23:01 +010032AM_CFLAGS = $(INCLUDE_DIRS) $(EXTRA_CFLAGS) $(CODE_COVERAGE_CFLAGS)
33AM_LDFLAGS = $(EXTRA_LDFLAGS) $(CODE_COVERAGE_LIBS)
Philip Triccaa509a682015-09-14 15:34:52 -070034
Andreas Fuchs0dc7c292018-02-28 20:01:13 +010035# Initialize empty variables to be extended throughout
36lib_LTLIBRARIES =
37noinst_LTLIBRARIES =
38EXTRA_DIST =
39CLEANFILES =
40MOSTLYCLEANFILES =
Andreas Fuchsa0eda362018-03-28 11:56:42 +020041noinst_PROGRAMS =
Philip Tricca4334dee2016-08-09 19:56:28 -070042
Andreas Fuchs0dc7c292018-02-28 20:01:13 +010043### Add ax_* rules ###
44# ax_code_coverage
45@CODE_COVERAGE_RULES@
Juergen Reppff821bd2017-12-11 15:21:42 +010046
Andreas Fuchs0dc7c292018-02-28 20:01:13 +010047# ax_doxygen
48@DX_RULES@
49MOSTLYCLEANFILES += $(DX_CLEANFILES)
Philip Tricca99d41422017-06-18 15:11:50 -070050
Andreas Fuchse5273b32018-04-26 16:16:24 +020051if DOXYMAN
52DOXYMAN3 = \
53 doc/man/ESYS_CONTEXT.3 \
54 doc/man/ESYS_TR.3 \
55 doc/man/ESYS_TR_defines.3 \
56 doc/man/Esys_ActivateCredential.3 \
57 doc/man/Esys_Certify.3 \
58 doc/man/Esys_CertifyCreation.3 \
59 doc/man/Esys_ChangeEPS.3 \
60 doc/man/Esys_ChangePPS.3 \
61 doc/man/Esys_Clear.3 \
62 doc/man/Esys_ClearControl.3 \
63 doc/man/Esys_ClockRateAdjust.3 \
64 doc/man/Esys_ClockSet.3 \
65 doc/man/Esys_Commit.3 \
66 doc/man/Esys_ContextLoad.3 \
67 doc/man/Esys_ContextSave.3 \
68 doc/man/Esys_Create.3 \
69 doc/man/Esys_CreatePrimary.3 \
70 doc/man/Esys_DictionaryAttackLockReset.3 \
71 doc/man/Esys_DictionaryAttackParameters.3 \
72 doc/man/Esys_Duplicate.3 \
73 doc/man/Esys_ECC_Parameters.3 \
74 doc/man/Esys_ECDH_KeyGen.3 \
75 doc/man/Esys_ECDH_ZGen.3 \
76 doc/man/Esys_EC_Ephemeral.3 \
77 doc/man/Esys_EncryptDecrypt.3 \
78 doc/man/Esys_EventSequenceComplete.3 \
79 doc/man/Esys_EvictControl.3 \
80 doc/man/Esys_FlushContext.3 \
81 doc/man/Esys_GetCapability.3 \
82 doc/man/Esys_GetCommandAuditDigest.3 \
83 doc/man/Esys_GetRandom.3 \
84 doc/man/Esys_GetSessionAuditDigest.3 \
85 doc/man/Esys_GetTestResult.3 \
86 doc/man/Esys_GetTime.3 \
87 doc/man/Esys_Hash.3 \
88 doc/man/Esys_HashSequenceStart.3 \
89 doc/man/Esys_HierarchyChangeAuth.3 \
90 doc/man/Esys_HierarchyControl.3 \
91 doc/man/Esys_HMAC.3 \
92 doc/man/Esys_HMAC_Start.3 \
93 doc/man/Esys_Import.3 \
94 doc/man/Esys_IncrementalSelfTest.3 \
95 doc/man/Esys_Load.3 \
96 doc/man/Esys_LoadExternal.3 \
97 doc/man/Esys_MakeCredential.3 \
98 doc/man/Esys_NV_Certify.3 \
99 doc/man/Esys_NV_ChangeAuth.3 \
100 doc/man/Esys_NV_DefineSpace.3 \
101 doc/man/Esys_NV_Extend.3 \
102 doc/man/Esys_NV_GlobalWriteLock.3 \
103 doc/man/Esys_NV_Increment.3 \
104 doc/man/Esys_NV_Read.3 \
105 doc/man/Esys_NV_ReadLock.3 \
106 doc/man/Esys_NV_ReadPublic.3 \
107 doc/man/Esys_NV_SetBits.3 \
108 doc/man/Esys_NV_UndefineSpace.3 \
109 doc/man/Esys_NV_UndefineSpaceSpecial.3 \
110 doc/man/Esys_NV_Write.3 \
111 doc/man/Esys_NV_WriteLock.3 \
112 doc/man/Esys_ObjectChangeAuth.3 \
113 doc/man/Esys_PCR_Allocate.3 \
114 doc/man/Esys_PCR_Event.3 \
115 doc/man/Esys_PCR_Extend.3 \
116 doc/man/Esys_PCR_Read.3 \
117 doc/man/Esys_PCR_Reset.3 \
118 doc/man/Esys_PCR_SetAuthPolicy.3 \
119 doc/man/Esys_PCR_SetAuthValue.3 \
120 doc/man/Esys_PolicyAuthorize.3 \
121 doc/man/Esys_PolicyAuthValue.3 \
122 doc/man/Esys_PolicyCommandCode.3 \
123 doc/man/Esys_PolicyCounterTimer.3 \
124 doc/man/Esys_PolicyCpHash.3 \
125 doc/man/Esys_PolicyDuplicationSelect.3 \
126 doc/man/Esys_PolicyGetDigest.3 \
127 doc/man/Esys_PolicyLocality.3 \
128 doc/man/Esys_PolicyNameHash.3 \
129 doc/man/Esys_PolicyNV.3 \
130 doc/man/Esys_PolicyNvWritten.3 \
131 doc/man/Esys_PolicyOR.3 \
132 doc/man/Esys_PolicyPassword.3 \
133 doc/man/Esys_PolicyPCR.3 \
134 doc/man/Esys_PolicyPhysicalPresence.3 \
135 doc/man/Esys_PolicyRestart.3 \
136 doc/man/Esys_PolicySecret.3 \
137 doc/man/Esys_PolicySigned.3 \
138 doc/man/Esys_PolicyTicket.3 \
139 doc/man/Esys_PP_Commands.3 \
140 doc/man/Esys_Quote.3 \
141 doc/man/Esys_ReadClock.3 \
142 doc/man/Esys_ReadPublic.3 \
143 doc/man/Esys_Rewrap.3 \
144 doc/man/Esys_RSA_Decrypt.3 \
145 doc/man/Esys_RSA_Encrypt.3 \
146 doc/man/Esys_SelfTest.3 \
147 doc/man/Esys_SequenceComplete.3 \
148 doc/man/Esys_SequenceUpdate.3 \
149 doc/man/Esys_SetAlgorithmSet.3 \
150 doc/man/Esys_SetCommandCodeAuditStatus.3 \
151 doc/man/Esys_SetPrimaryPolicy.3 \
152 doc/man/Esys_Shutdown.3 \
153 doc/man/Esys_Sign.3 \
154 doc/man/Esys_StartAuthSession.3 \
155 doc/man/Esys_Startup.3 \
156 doc/man/Esys_StirRandom.3 \
157 doc/man/Esys_TestParms.3 \
158 doc/man/Esys_Unseal.3 \
159 doc/man/Esys_Vendor_TCG_Test.3 \
160 doc/man/Esys_VerifySignature.3 \
161 doc/man/Esys_ZGen_2Phase.3
162$(DOXYMAN3): doxygen-doc
163else #DOXYMAN
164DOXYMAN3 =
165endif #DOXYMAN
166
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100167### Include make files ###
168# Add source code files from bootstrap
169include src_vars.mk
Andreas Fuchs24fb1302017-11-22 10:21:18 +0100170
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100171# Add test definitions
172include Makefile-test.am
hp43ac71d2016-12-02 11:16:45 -0800173
dantpmd0899fe2018-04-06 14:26:05 -0700174### Distribution files ###
Javier Martinez Canillas0075f882018-04-13 12:49:37 +0200175# Add udev rule
Javier Martinez Canillas0075f882018-04-13 12:49:37 +0200176udevrules_DATA = dist/tpm-udev.rules
Javier Martinez Canillas0075f882018-04-13 12:49:37 +0200177
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100178# Adding user and developer information
179EXTRA_DIST += \
Philip Triccac0841fc2017-12-08 12:10:20 -0800180 CHANGELOG.md \
181 CONTRIBUTING.md \
182 INSTALL.md \
183 LICENSE \
184 README.md \
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100185 RELEASE.md
Philip Tricca2bd4adb2015-09-25 00:14:16 -0700186
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100187# Generate the AUTHORS file from git log
188AUTHORS :
189 $(AM_V_GEN)git log --format='%aN <%aE>' | grep -v 'users.noreply.github.com' | sort | \
190 uniq -c | sort -nr | sed 's/^\s*//' | cut -d" " -f2- > $@
191EXTRA_DIST += AUTHORS
192CLEANFILES += AUTHORS
Philip Triccab194be92016-03-15 13:27:09 -0700193
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100194# pkg-config setup. pc-file declarations happen in the corresponding modules
195pkgconfigdir = $(libdir)/pkgconfig
196nodist_pkgconfig_DATA =
197CLEANFILES += $(nodist_pkgconfig_DATA)
Philip Triccae0a93d12017-06-29 08:42:34 -0700198
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100199%.pc : %.pc.in
200 $(AM_V_GEN)$(call make_parent_dir,$@) && \
201 sed -e "s,[@]VERSION[@],$(PACKAGE_VERSION),g; \
202 s,[@]libdir[@],$(libdir),g; \
203 s,[@]includedir[@],$(includedir),g;" $^ > $@
Philip Tricca6f634c42016-07-23 12:32:15 -0700204
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800205# Base TSS2 headers
206tss2dir = $(includedir)/tss2
207tss2_HEADERS = \
208 $(srcdir)/include/tss2/tss2_common.h \
209 $(srcdir)/include/tss2/tss2_tcti.h \
Philip Tricca910f17c2018-03-15 12:38:37 -0700210 $(srcdir)/include/tss2/tss2_tpm2_types.h
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800211
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100212### Internal utility library
213libutil = libutil.la
214noinst_LTLIBRARIES += $(libutil)
Philip Triccaa003ae62018-02-19 10:32:46 -0800215libutil_la_CFLAGS = $(AM_CFLAGS)
Philip Tricca57360da2018-03-15 17:22:10 -0700216libutil_la_SOURCES = $(UTIL_SRC)
Philip Triccaa003ae62018-02-19 10:32:46 -0800217
dantpmd0899fe2018-04-06 14:26:05 -0700218### TCG TSS Marshaling/Unmarshaling spec library ###
Philip Triccaee730622018-03-10 16:40:41 -0800219libtss2_mu = src/tss2-mu/libtss2-mu.la
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800220tss2_HEADERS += $(srcdir)/include/tss2/tss2_mu.h
Philip Triccaee730622018-03-10 16:40:41 -0800221lib_LTLIBRARIES += $(libtss2_mu)
222nodist_pkgconfig_DATA += lib/tss2-mu.pc
223EXTRA_DIST += lib/tss2-mu.map lib/tss2-mu.pc.in
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100224
David R. Bild1e49b4c2017-11-28 18:09:42 -0600225if HAVE_LD_VERSION_SCRIPT
Philip Triccaee730622018-03-10 16:40:41 -0800226src_tss2_mu_libtss2_mu_la_LDFLAGS = -Wl,--version-script=$(srcdir)/lib/tss2-mu.map
David R. Bild1e49b4c2017-11-28 18:09:42 -0600227endif # HAVE_LD_VERSION_SCRIPT
Philip Triccaee730622018-03-10 16:40:41 -0800228src_tss2_mu_libtss2_mu_la_LIBADD = $(libutil)
229src_tss2_mu_libtss2_mu_la_SOURCES = $(TSS2_MU_SRC)
Philip Tricca73609722017-02-10 10:50:06 -0800230
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100231### TCG TSS TCTI spec libraries ###
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100232# tcti device library
Andreas Fuchs2b085e92018-05-02 16:42:47 +0200233if ENABLE_TCTI_DEVICE
Philip Triccab8584ac2018-03-10 17:02:30 -0800234libtss2_tcti_device = src/tss2-tcti/libtss2-tcti-device.la
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800235tss2_HEADERS += $(srcdir)/include/tss2/tss2_tcti_device.h
Philip Triccab8584ac2018-03-10 17:02:30 -0800236lib_LTLIBRARIES += $(libtss2_tcti_device)
237nodist_pkgconfig_DATA += lib/tss2-tcti-device.pc
238EXTRA_DIST += lib/tss2-tcti-device.map lib/tss2-tcti-device.pc.in
Juergen Reppff821bd2017-12-11 15:21:42 +0100239
Philip Triccab8584ac2018-03-10 17:02:30 -0800240src_tss2_tcti_libtss2_tcti_device_la_CFLAGS = $(AM_CFLAGS)
David R. Bild1e49b4c2017-11-28 18:09:42 -0600241if HAVE_LD_VERSION_SCRIPT
Philip Triccab8584ac2018-03-10 17:02:30 -0800242src_tss2_tcti_libtss2_tcti_device_la_LDFLAGS = -Wl,--version-script=$(srcdir)/lib/tss2-tcti-device.map
David R. Bild1e49b4c2017-11-28 18:09:42 -0600243endif # HAVE_LD_VERSION_SCRIPT
Philip Triccab8584ac2018-03-10 17:02:30 -0800244src_tss2_tcti_libtss2_tcti_device_la_LIBADD = $(libtss2_mu) $(libutil)
Philip Tricca850bb592018-04-03 09:29:22 -0700245src_tss2_tcti_libtss2_tcti_device_la_SOURCES = \
246 src/tss2-tcti/tcti-common.c src/tss2-tcti/tcti-common.h \
247 src/tss2-tcti/tcti-device.c src/tss2-tcti/tcti-device.h
Andreas Fuchs2b085e92018-05-02 16:42:47 +0200248endif # ENABLE_TCTI_DEVICE
Philip Tricca97e869f2015-11-03 20:19:44 -0500249
dantpmd0899fe2018-04-06 14:26:05 -0700250# tcti library for Microsoft TPM2 simulator
Andreas Fuchs2b085e92018-05-02 16:42:47 +0200251if ENABLE_TCTI_MSSIM
Philip Triccab8584ac2018-03-10 17:02:30 -0800252libtss2_tcti_mssim = src/tss2-tcti/libtss2-tcti-mssim.la
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800253tss2_HEADERS += $(srcdir)/include/tss2/tss2_tcti_mssim.h
Philip Triccab8584ac2018-03-10 17:02:30 -0800254lib_LTLIBRARIES += $(libtss2_tcti_mssim)
255nodist_pkgconfig_DATA += lib/tss2-tcti-mssim.pc
256EXTRA_DIST += lib/tss2-tcti-mssim.map lib/tss2-tcti-mssim.pc.in
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100257
Philip Triccab8584ac2018-03-10 17:02:30 -0800258src_tss2_tcti_libtss2_tcti_mssim_la_CFLAGS = $(AM_CFLAGS) $(URIPARSER_CFLAGS)
David R. Bild1e49b4c2017-11-28 18:09:42 -0600259if HAVE_LD_VERSION_SCRIPT
Philip Triccab8584ac2018-03-10 17:02:30 -0800260src_tss2_tcti_libtss2_tcti_mssim_la_LDFLAGS = -Wl,--version-script=$(srcdir)/lib/tss2-tcti-mssim.map
David R. Bild1e49b4c2017-11-28 18:09:42 -0600261endif # HAVE_LD_VERSION_SCRIPT
Philip Triccab8584ac2018-03-10 17:02:30 -0800262src_tss2_tcti_libtss2_tcti_mssim_la_LIBADD = $(libtss2_mu) $(URIPARSER_LIBS) $(libutil)
Philip Tricca850bb592018-04-03 09:29:22 -0700263src_tss2_tcti_libtss2_tcti_mssim_la_SOURCES = \
264 src/tss2-tcti/tcti-common.c src/tss2-tcti/tcti-common.h \
265 src/tss2-tcti/tcti-mssim.c src/tss2-tcti/tcti-mssim.h
Andreas Fuchs2b085e92018-05-02 16:42:47 +0200266endif # ENABLE_TCTI_MSSIM
Philip Triccaa51ca972015-11-04 00:13:42 -0500267
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100268### TCG TSS SAPI spec library ###
Philip Tricca5f0ab552018-03-10 18:18:29 -0800269libtss2_sys = src/tss2-sys/libtss2-sys.la
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800270tss2_HEADERS += $(srcdir)/include/tss2/tss2_sys.h
Philip Tricca5f0ab552018-03-10 18:18:29 -0800271lib_LTLIBRARIES += $(libtss2_sys)
272nodist_pkgconfig_DATA += lib/tss2-sys.pc
273EXTRA_DIST += lib/tss2-sys.pc.in
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800274
Philip Triccad5a6ff42018-03-13 18:19:42 -0700275src_tss2_sys_libtss2_sys_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/src/tss2-sys
Andreas Fuchs28164ad2018-03-16 13:33:26 +0100276src_tss2_sys_libtss2_sys_la_LIBADD = $(libtss2_mu) $(libutil)
Philip Tricca5f0ab552018-03-10 18:18:29 -0800277src_tss2_sys_libtss2_sys_la_SOURCES = $(TSS2_SYS_SRC)
hp43ac71d2016-12-02 11:16:45 -0800278
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100279### TCG TSS ESAPI spec library ###
Juergen Reppff821bd2017-12-11 15:21:42 +0100280if ESAPI
Philip Tricca49635f42018-03-10 19:19:58 -0800281libtss2_esys = src/tss2-esys/libtss2-esys.la
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800282tss2_HEADERS += $(srcdir)/include/tss2/tss2_esys.h
Philip Tricca49635f42018-03-10 19:19:58 -0800283lib_LTLIBRARIES += $(libtss2_esys)
284nodist_pkgconfig_DATA += lib/tss2-esys.pc
285EXTRA_DIST += lib/tss2-esys.pc.in
Philip Tricca8ffd3c42018-03-09 16:27:24 -0800286
Andreas Fuchs037c8782018-03-21 18:52:38 +0100287src_tss2_esys_libtss2_esys_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/src/tss2-esys
Philip Tricca49635f42018-03-10 19:19:58 -0800288src_tss2_esys_libtss2_esys_la_LIBADD = $(libtss2_sys) $(libtss2_mu) \
Philip Tricca5f0ab552018-03-10 18:18:29 -0800289 $(libtss2_tcti_device) $(libtss2_tcti_mssim) $(libutil)
Andreas Fuchs037c8782018-03-21 18:52:38 +0100290src_tss2_esys_libtss2_esys_la_LDFLAGS = $(AM_LDFLAGS) -ldl -lgcrypt
Philip Tricca49635f42018-03-10 19:19:58 -0800291src_tss2_esys_libtss2_esys_la_SOURCES = $(TSS2_ESYS_SRC)
Philip Tricca0f0516e2018-03-05 09:59:12 -0800292
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100293endif #ESAPI
Juergen Reppecd44eb2018-02-23 13:41:16 +0100294
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100295### Man Pages
Andreas Fuchse5273b32018-04-26 16:16:24 +0200296man3_MANS = man/man3/Tss2_Tcti_Device_Init.3 man/man3/Tss2_Tcti_Mssim_Init.3 $(DOXYMAN3)
Philip Triccab8584ac2018-03-10 17:02:30 -0800297man7_MANS = man/man7/tss2-tcti-device.7 man/man7/tss2-tcti-mssim.7
Philip Tricca7ae01542016-05-05 18:45:03 -0700298
Philip Triccafe671682017-06-04 19:14:31 -0700299man/man3/%.3 : man/%.3.in $(srcdir)/man/man-postlude.troff
Andreas Fuchs3c965e72017-11-24 16:16:20 +0100300 $(AM_V_GEN)$(call make_man,$@,$<,$(srcdir)/man/man-postlude.troff)
Philip Triccafe671682017-06-04 19:14:31 -0700301
Philip Tricca632c4312017-06-05 11:58:08 -0700302man/man7/%.7 : man/%.7.in $(srcdir)/man/man-postlude.troff
Andreas Fuchs3c965e72017-11-24 16:16:20 +0100303 $(AM_V_GEN)$(call make_man,$@,$<,$(srcdir)/man/man-postlude.troff)
Philip Tricca632c4312017-06-05 11:58:08 -0700304
Javier Martinez Canillas0075f882018-04-13 12:49:37 +0200305EXTRA_DIST += dist/tpm-udev.rules
306
307if WITH_UDEVRULESPREFIX
308install-data-hook:
309 mv $(DESTDIR)$(udevrulesdir)/tpm-udev.rules $(DESTDIR)$(udevrulesdir)/$(udevrulesprefix)tpm-udev.rules
310
311uninstall-local:
312 -rm $(DESTDIR)$(udevrulesdir)/$(udevrulesprefix)tpm-udev.rules
313endif
314
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100315EXTRA_DIST += \
316 man/man-postlude.troff \
Philip Tricca5a235282018-02-27 14:59:49 -0800317 man/Tss2_Tcti_Device_Init.3.in \
Philip Triccaaddad782018-03-09 11:42:05 -0800318 man/Tss2_Tcti_Mssim_Init.3.in \
Philip Triccab8584ac2018-03-10 17:02:30 -0800319 man/tss2-tcti-device.7.in \
320 man/tss2-tcti-mssim.7.in
Philip Tricca632c4312017-06-05 11:58:08 -0700321
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100322CLEANFILES += \
323 $(man3_MANS) \
324 $(man7_MANS)
325
326### Helper Functions ###
Philip Tricca632c4312017-06-05 11:58:08 -0700327define make_parent_dir
328 if [ ! -d $(dir $1) ]; then mkdir -p $(dir $1); fi
329endef
Andreas Fuchs0dc7c292018-02-28 20:01:13 +0100330
Philip Triccafe671682017-06-04 19:14:31 -0700331# function to transform man .in files to man pages
332# $1: target
333# $2: .in file
334# $3: man postlude file
335define make_man
Andreas Fuchs3c965e72017-11-24 16:16:20 +0100336 $(call make_parent_dir,$1) && \
337 cat $2 $3 > $1 && \
Philip Triccafe671682017-06-04 19:14:31 -0700338 sed -i -e "s,[@]VERSION[@],$(PACKAGE_VERSION),g;" $1
339endef