blob: 7f31d83a736148534cf2ea862cc273321c14ca5e [file] [log] [blame]
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -07001
2# Copyright 2015 The Chromium OS Authors. All rights reserved.
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6obj ?= ./build
Vadim Bendebury4ea50762015-06-04 20:22:25 -07007CROSS_COMPILE ?=
Bill Richardson2faf06e2015-08-24 16:45:48 -07008CC ?= $(CROSS_COMPILE)gcc
9AR ?= $(CROSS_COMPILE)ar
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -070010
Vadim Bendebury7878aef2015-08-12 12:57:26 -070011HOST_SOURCES =
12SOURCES = ActivateCredential.c
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -070013SOURCES += AlgorithmCap.c
14SOURCES += Attest_spt.c
15SOURCES += Bits.c
16SOURCES += Cancel.c
17SOURCES += Certify.c
18SOURCES += CertifyCreation.c
19SOURCES += ChangeEPS.c
20SOURCES += ChangePPS.c
21SOURCES += Clear.c
22SOURCES += ClearControl.c
23SOURCES += Clock.c
24SOURCES += ClockRateAdjust.c
25SOURCES += ClockSet.c
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -070026SOURCES += CommandAudit.c
27SOURCES += CommandCodeAttributes.c
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -070028SOURCES += CommandDispatcher.c
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -070029SOURCES += Commit.c
30SOURCES += ContextLoad.c
31SOURCES += ContextSave.c
32SOURCES += Context_spt.c
Vadim Bendebury7878aef2015-08-12 12:57:26 -070033HOST_SOURCES += CpriCryptPri.c
34HOST_SOURCES += CpriECC.c
35HOST_SOURCES += CpriHash.c
36HOST_SOURCES += CpriMisc.c
37HOST_SOURCES += CpriRNG.c
38HOST_SOURCES += CpriRSA.c
39HOST_SOURCES += CpriSym.c
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -070040SOURCES += Create.c
41SOURCES += CreatePrimary.c
42SOURCES += CryptSelfTest.c
43SOURCES += CryptUtil.c
44SOURCES += DA.c
45SOURCES += DRTM.c
46SOURCES += DictionaryAttackLockReset.c
47SOURCES += DictionaryAttackParameters.c
48SOURCES += Duplicate.c
49SOURCES += ECC_Parameters.c
50SOURCES += ECDH_KeyGen.c
51SOURCES += ECDH_ZGen.c
52SOURCES += EC_Ephemeral.c
53SOURCES += EncryptDecrypt.c
54SOURCES += Entity.c
Vadim Bendebury7878aef2015-08-12 12:57:26 -070055HOST_SOURCES += Entropy.c
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -070056SOURCES += EventSequenceComplete.c
57SOURCES += EvictControl.c
Vadim Bendeburyda725062015-05-31 14:41:18 -070058SOURCES += ExecCommand.c
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -070059SOURCES += FieldUpgradeData.c
60SOURCES += FieldUpgradeStart.c
61SOURCES += FirmwareRead.c
62SOURCES += FlushContext.c
63SOURCES += GetCapability.c
64SOURCES += GetCommandAuditDigest.c
Jocelyn Bohr3863cc02015-08-13 13:20:05 -070065SOURCES += GetCommandCodeString.c
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -070066SOURCES += GetRandom.c
67SOURCES += GetSessionAuditDigest.c
68SOURCES += GetTestResult.c
69SOURCES += GetTime.c
70SOURCES += Global.c
71SOURCES += HMAC.c
72SOURCES += HMAC_Start.c
73SOURCES += Handle.c
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -070074SOURCES += HandleProcess.c
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -070075SOURCES += Hash.c
76SOURCES += HashSequenceStart.c
77SOURCES += Hierarchy.c
78SOURCES += HierarchyChangeAuth.c
79SOURCES += HierarchyControl.c
80SOURCES += Import.c
81SOURCES += IncrementalSelfTest.c
82SOURCES += Load.c
83SOURCES += LoadExternal.c
84SOURCES += Locality.c
85SOURCES += LocalityPlat.c
86SOURCES += MakeCredential.c
Jocelyn Bohra4ed3aa2015-07-30 10:44:16 -070087SOURCES += Marshal_ActivateCredential.c
88SOURCES += Marshal_Certify.c
89SOURCES += Marshal_CertifyCreation.c
90SOURCES += Marshal_ChangeEPS.c
91SOURCES += Marshal_ChangePPS.c
92SOURCES += Marshal_Clear.c
93SOURCES += Marshal_ClearControl.c
94SOURCES += Marshal_ClockRateAdjust.c
95SOURCES += Marshal_ClockSet.c
96SOURCES += Marshal_Commit.c
97SOURCES += Marshal_ContextLoad.c
98SOURCES += Marshal_ContextSave.c
99SOURCES += Marshal_Create.c
100SOURCES += Marshal_CreatePrimary.c
101SOURCES += Marshal_DictionaryAttackLockReset.c
102SOURCES += Marshal_DictionaryAttackParameters.c
103SOURCES += Marshal_Duplicate.c
104SOURCES += Marshal_ECC_Parameters.c
105SOURCES += Marshal_ECDH_KeyGen.c
106SOURCES += Marshal_ECDH_ZGen.c
107SOURCES += Marshal_EC_Ephemeral.c
108SOURCES += Marshal_EncryptDecrypt.c
109SOURCES += Marshal_EventSequenceComplete.c
110SOURCES += Marshal_EvictControl.c
111SOURCES += Marshal_FieldUpgradeData.c
112SOURCES += Marshal_FieldUpgradeStart.c
113SOURCES += Marshal_FirmwareRead.c
114SOURCES += Marshal_FlushContext.c
115SOURCES += Marshal_GetCapability.c
116SOURCES += Marshal_GetCommandAuditDigest.c
117SOURCES += Marshal_GetRandom.c
118SOURCES += Marshal_GetSessionAuditDigest.c
119SOURCES += Marshal_GetTestResult.c
120SOURCES += Marshal_GetTime.c
121SOURCES += Marshal_HMAC.c
122SOURCES += Marshal_HMAC_Start.c
123SOURCES += Marshal_Hash.c
124SOURCES += Marshal_HashSequenceStart.c
125SOURCES += Marshal_HierarchyChangeAuth.c
126SOURCES += Marshal_HierarchyControl.c
127SOURCES += Marshal_Import.c
128SOURCES += Marshal_IncrementalSelfTest.c
129SOURCES += Marshal_Load.c
130SOURCES += Marshal_LoadExternal.c
131SOURCES += Marshal_MakeCredential.c
132SOURCES += Marshal_NV_Certify.c
133SOURCES += Marshal_NV_ChangeAuth.c
134SOURCES += Marshal_NV_DefineSpace.c
135SOURCES += Marshal_NV_Extend.c
136SOURCES += Marshal_NV_GlobalWriteLock.c
137SOURCES += Marshal_NV_Increment.c
138SOURCES += Marshal_NV_Read.c
139SOURCES += Marshal_NV_ReadLock.c
140SOURCES += Marshal_NV_ReadPublic.c
141SOURCES += Marshal_NV_SetBits.c
142SOURCES += Marshal_NV_UndefineSpace.c
143SOURCES += Marshal_NV_UndefineSpaceSpecial.c
144SOURCES += Marshal_NV_Write.c
145SOURCES += Marshal_NV_WriteLock.c
146SOURCES += Marshal_ObjectChangeAuth.c
147SOURCES += Marshal_PCR_Allocate.c
148SOURCES += Marshal_PCR_Event.c
149SOURCES += Marshal_PCR_Extend.c
150SOURCES += Marshal_PCR_Read.c
151SOURCES += Marshal_PCR_Reset.c
152SOURCES += Marshal_PCR_SetAuthPolicy.c
153SOURCES += Marshal_PCR_SetAuthValue.c
154SOURCES += Marshal_PP_Commands.c
155SOURCES += Marshal_PolicyAuthValue.c
156SOURCES += Marshal_PolicyAuthorize.c
157SOURCES += Marshal_PolicyCommandCode.c
158SOURCES += Marshal_PolicyCounterTimer.c
159SOURCES += Marshal_PolicyCpHash.c
160SOURCES += Marshal_PolicyDuplicationSelect.c
161SOURCES += Marshal_PolicyGetDigest.c
162SOURCES += Marshal_PolicyLocality.c
163SOURCES += Marshal_PolicyNV.c
164SOURCES += Marshal_PolicyNameHash.c
165SOURCES += Marshal_PolicyNvWritten.c
166SOURCES += Marshal_PolicyOR.c
167SOURCES += Marshal_PolicyPCR.c
168SOURCES += Marshal_PolicyPassword.c
169SOURCES += Marshal_PolicyPhysicalPresence.c
170SOURCES += Marshal_PolicyRestart.c
171SOURCES += Marshal_PolicySecret.c
172SOURCES += Marshal_PolicySigned.c
173SOURCES += Marshal_PolicyTicket.c
174SOURCES += Marshal_Quote.c
175SOURCES += Marshal_RSA_Decrypt.c
176SOURCES += Marshal_RSA_Encrypt.c
177SOURCES += Marshal_ReadClock.c
178SOURCES += Marshal_ReadPublic.c
179SOURCES += Marshal_Rewrap.c
180SOURCES += Marshal_SelfTest.c
181SOURCES += Marshal_SequenceComplete.c
182SOURCES += Marshal_SequenceUpdate.c
183SOURCES += Marshal_SetAlgorithmSet.c
184SOURCES += Marshal_SetCommandCodeAuditStatus.c
185SOURCES += Marshal_SetPrimaryPolicy.c
186SOURCES += Marshal_Shutdown.c
187SOURCES += Marshal_Sign.c
188SOURCES += Marshal_StartAuthSession.c
189SOURCES += Marshal_Startup.c
190SOURCES += Marshal_StirRandom.c
191SOURCES += Marshal_TestParms.c
192SOURCES += Marshal_Unseal.c
193SOURCES += Marshal_VerifySignature.c
194SOURCES += Marshal_ZGen_2Phase.c
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -0700195SOURCES += Manufacture.c
nagendra modadugu24f8b192016-03-07 20:59:23 -0800196SOURCES += MathFunctions.c
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -0700197SOURCES += MemoryLib.c
198SOURCES += NV.c
Bill Richardson52912e72015-09-01 17:29:54 -0700199HOST_SOURCES += NVMem.c
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -0700200SOURCES += NV_Certify.c
201SOURCES += NV_ChangeAuth.c
202SOURCES += NV_DefineSpace.c
203SOURCES += NV_Extend.c
204SOURCES += NV_GlobalWriteLock.c
205SOURCES += NV_Increment.c
206SOURCES += NV_Read.c
207SOURCES += NV_ReadLock.c
208SOURCES += NV_ReadPublic.c
209SOURCES += NV_SetBits.c
210SOURCES += NV_UndefineSpace.c
211SOURCES += NV_UndefineSpaceSpecial.c
212SOURCES += NV_Write.c
213SOURCES += NV_WriteLock.c
214SOURCES += NV_spt.c
215SOURCES += Object.c
216SOURCES += ObjectChangeAuth.c
217SOURCES += Object_spt.c
218SOURCES += PCR.c
219SOURCES += PCR_Allocate.c
220SOURCES += PCR_Event.c
221SOURCES += PCR_Extend.c
222SOURCES += PCR_Read.c
223SOURCES += PCR_Reset.c
224SOURCES += PCR_SetAuthPolicy.c
225SOURCES += PCR_SetAuthValue.c
226SOURCES += PP.c
227SOURCES += PPPlat.c
228SOURCES += PP_Commands.c
229SOURCES += PlatformData.c
230SOURCES += PolicyAuthValue.c
231SOURCES += PolicyAuthorize.c
232SOURCES += PolicyCommandCode.c
233SOURCES += PolicyCounterTimer.c
234SOURCES += PolicyCpHash.c
235SOURCES += PolicyDuplicationSelect.c
236SOURCES += PolicyGetDigest.c
237SOURCES += PolicyLocality.c
238SOURCES += PolicyNV.c
239SOURCES += PolicyNameHash.c
240SOURCES += PolicyNvWritten.c
241SOURCES += PolicyOR.c
242SOURCES += PolicyPCR.c
243SOURCES += PolicyPassword.c
244SOURCES += PolicyPhysicalPresence.c
245SOURCES += PolicyRestart.c
246SOURCES += PolicySecret.c
247SOURCES += PolicySigned.c
248SOURCES += PolicyTicket.c
249SOURCES += Policy_spt.c
250SOURCES += Power.c
251SOURCES += PowerPlat.c
252SOURCES += PropertyCap.c
253SOURCES += Quote.c
Vadim Bendebury7878aef2015-08-12 12:57:26 -0700254HOST_SOURCES += RSAData.c
255HOST_SOURCES += RSAKeySieve.c
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -0700256SOURCES += RSA_Decrypt.c
257SOURCES += RSA_Encrypt.c
258SOURCES += ReadClock.c
259SOURCES += ReadPublic.c
260SOURCES += Rewrap.c
261SOURCES += SelfTest.c
262SOURCES += SequenceComplete.c
263SOURCES += SequenceUpdate.c
264SOURCES += Session.c
265SOURCES += SessionProcess.c
266SOURCES += SetAlgorithmSet.c
267SOURCES += SetCommandCodeAuditStatus.c
268SOURCES += SetPrimaryPolicy.c
269SOURCES += Shutdown.c
270SOURCES += Sign.c
271SOURCES += StartAuthSession.c
272SOURCES += Startup.c
273SOURCES += StirRandom.c
Vadim Bendeburye5191272015-06-01 18:57:46 -0700274#SOURCES += TPMCmdp.c
275#SOURCES += TPMCmds.c
276#SOURCES += TcpServer.c
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -0700277SOURCES += TestParms.c
278SOURCES += Ticket.c
279SOURCES += Time.c
280SOURCES += TpmFail.c
281SOURCES += Unique.c
282SOURCES += Unseal.c
283SOURCES += VerifySignature.c
284SOURCES += ZGen_2Phase.c
285SOURCES += _TPM_Hash_Data.c
286SOURCES += _TPM_Hash_End.c
287SOURCES += _TPM_Hash_Start.c
288SOURCES += _TPM_Init.c
ChromeOS Developere85c65b2015-07-10 10:12:43 -0700289SOURCES += tpm_generated.c
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -0700290
Bill Richardsonc9eeb602015-08-17 13:57:39 -0700291# Use V=1 for verbose output
292ifeq ($(V),)
293Q := @
294else
295Q :=
296endif
297
Vadim Bendebury7878aef2015-08-12 12:57:26 -0700298ifeq ($(EMBEDDED_MODE),)
299SOURCES += $(HOST_SOURCES)
Jocelyn Bohr71e3b992015-08-14 12:05:59 -0700300CFLAGS += -Wall -Werror -fPIC
Vadim Bendebury7878aef2015-08-12 12:57:26 -0700301else
nagendra modadugu9b66ae82016-01-12 17:02:21 -0800302SOURCES += stubs_ecc.c
303SOURCES += stubs_hash.c
304SOURCES += stubs_sym.c
Vadim Bendebury7878aef2015-08-12 12:57:26 -0700305CFLAGS += -DEMBEDDED_MODE
nagendra modadugu716a46a2016-05-25 13:54:36 -0700306# Configure system headers appropriately.
307CFLAGS += -DTHIRD_PARTY
Bill Richardsonc9eeb602015-08-17 13:57:39 -0700308ifneq ($(ROOTDIR),)
Vadim Bendebury7878aef2015-08-12 12:57:26 -0700309CFLAGS += -I$(ROOTDIR)
310endif
311endif
312
Randall Spangler3d83fdf2016-08-05 10:17:07 -0700313# Caller may specify OBJ_PREFIX to prefix all object filenames in the
314# archive with a common string. This allows the caller's linker
315# script to group the data and bss sections for this library in one
316# place. For example, if OBJ_PREFIX=Tpm2_, the caller's linker script
317# can have something like
318#
319# __bss_libtpm2_start = .;
320# Tpm2_*(.bss)
321# __bss_libtpm2_end = .;
322#
323# Using a unique prefix is necessary in this case because files in
324# archives only have a filename, not a full path.
325OBJS = $(patsubst %.c,$(obj)/$(OBJ_PREFIX)%.o,$(SOURCES))
326DEPS = $(patsubst %.c,$(obj)/$(OBJ_PREFIX)%.d,$(SOURCES))
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -0700327
Bill Richardsonc9eeb602015-08-17 13:57:39 -0700328# This is the default target
Jocelyn Bohr4152d0d2015-06-09 17:46:42 -0700329$(obj)/libtpm2.a: $(OBJS)
Bill Richardsonc9eeb602015-08-17 13:57:39 -0700330 @echo " AR $(notdir $@)"
331 $(Q)$(AR) scr $@ $^
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -0700332
333$(obj):
Bill Richardsonc9eeb602015-08-17 13:57:39 -0700334 @echo " MKDIR $(obj)"
335 $(Q)mkdir -p $(obj)
336
Randall Spangler3d83fdf2016-08-05 10:17:07 -0700337$(obj)/$(OBJ_PREFIX)%.d $(obj)/$(OBJ_PREFIX)%.o: %.c | $(obj)
Bill Richardsonc9eeb602015-08-17 13:57:39 -0700338 @echo " CC $(notdir $<)"
339 $(Q)$(CC) $(CFLAGS) -c -MMD -MF $(basename $@).d -o $(basename $@).o $<
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -0700340
341.PHONY: clean
342clean:
Bill Richardsonc9eeb602015-08-17 13:57:39 -0700343 @echo " RM $(obj)"
344 $(Q)rm -rf $(obj)
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -0700345
Bill Richardsonc9eeb602015-08-17 13:57:39 -0700346ifneq ($(MAKECMDGOALS),clean)
Vadim Bendeburybdf2ad12015-05-27 15:05:52 -0700347-include $(DEPS)
Bill Richardsonc9eeb602015-08-17 13:57:39 -0700348endif