Home | History | Annotate | Download | only in tpm2
      1 
      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 
      6 obj ?= ./build
      7 CROSS_COMPILE ?=
      8 CC ?= $(CROSS_COMPILE)gcc
      9 AR ?= $(CROSS_COMPILE)ar
     10 
     11 HOST_SOURCES =
     12 SOURCES  = ActivateCredential.c
     13 SOURCES += AlgorithmCap.c
     14 SOURCES += Attest_spt.c
     15 SOURCES += Bits.c
     16 SOURCES += Cancel.c
     17 SOURCES += Certify.c
     18 SOURCES += CertifyCreation.c
     19 SOURCES += ChangeEPS.c
     20 SOURCES += ChangePPS.c
     21 SOURCES += Clear.c
     22 SOURCES += ClearControl.c
     23 SOURCES += Clock.c
     24 SOURCES += ClockRateAdjust.c
     25 SOURCES += ClockSet.c
     26 SOURCES += CommandAudit.c
     27 SOURCES += CommandCodeAttributes.c
     28 SOURCES += CommandDispatcher.c
     29 SOURCES += Commit.c
     30 SOURCES += ContextLoad.c
     31 SOURCES += ContextSave.c
     32 SOURCES += Context_spt.c
     33 HOST_SOURCES += CpriCryptPri.c
     34 HOST_SOURCES += CpriECC.c
     35 HOST_SOURCES += CpriHash.c
     36 HOST_SOURCES += CpriMisc.c
     37 HOST_SOURCES += CpriRNG.c
     38 HOST_SOURCES += CpriRSA.c
     39 HOST_SOURCES += CpriSym.c
     40 SOURCES += Create.c
     41 SOURCES += CreatePrimary.c
     42 SOURCES += CryptSelfTest.c
     43 SOURCES += CryptUtil.c
     44 SOURCES += DA.c
     45 SOURCES += DRTM.c
     46 SOURCES += DictionaryAttackLockReset.c
     47 SOURCES += DictionaryAttackParameters.c
     48 SOURCES += Duplicate.c
     49 SOURCES += ECC_Parameters.c
     50 SOURCES += ECDH_KeyGen.c
     51 SOURCES += ECDH_ZGen.c
     52 SOURCES += EC_Ephemeral.c
     53 SOURCES += EncryptDecrypt.c
     54 SOURCES += Entity.c
     55 HOST_SOURCES += Entropy.c
     56 SOURCES += EventSequenceComplete.c
     57 SOURCES += EvictControl.c
     58 SOURCES += ExecCommand.c
     59 SOURCES += FieldUpgradeData.c
     60 SOURCES += FieldUpgradeStart.c
     61 SOURCES += FirmwareRead.c
     62 SOURCES += FlushContext.c
     63 SOURCES += GetCapability.c
     64 SOURCES += GetCommandAuditDigest.c
     65 SOURCES += GetCommandCodeString.c
     66 SOURCES += GetRandom.c
     67 SOURCES += GetSessionAuditDigest.c
     68 SOURCES += GetTestResult.c
     69 SOURCES += GetTime.c
     70 SOURCES += Global.c
     71 SOURCES += HMAC.c
     72 SOURCES += HMAC_Start.c
     73 SOURCES += Handle.c
     74 SOURCES += HandleProcess.c
     75 SOURCES += Hash.c
     76 SOURCES += HashSequenceStart.c
     77 SOURCES += Hierarchy.c
     78 SOURCES += HierarchyChangeAuth.c
     79 SOURCES += HierarchyControl.c
     80 SOURCES += Import.c
     81 SOURCES += IncrementalSelfTest.c
     82 SOURCES += Load.c
     83 SOURCES += LoadExternal.c
     84 SOURCES += Locality.c
     85 SOURCES += LocalityPlat.c
     86 SOURCES += MakeCredential.c
     87 SOURCES += Marshal_ActivateCredential.c
     88 SOURCES += Marshal_Certify.c
     89 SOURCES += Marshal_CertifyCreation.c
     90 SOURCES += Marshal_ChangeEPS.c
     91 SOURCES += Marshal_ChangePPS.c
     92 SOURCES += Marshal_Clear.c
     93 SOURCES += Marshal_ClearControl.c
     94 SOURCES += Marshal_ClockRateAdjust.c
     95 SOURCES += Marshal_ClockSet.c
     96 SOURCES += Marshal_Commit.c
     97 SOURCES += Marshal_ContextLoad.c
     98 SOURCES += Marshal_ContextSave.c
     99 SOURCES += Marshal_Create.c
    100 SOURCES += Marshal_CreatePrimary.c
    101 SOURCES += Marshal_DictionaryAttackLockReset.c
    102 SOURCES += Marshal_DictionaryAttackParameters.c
    103 SOURCES += Marshal_Duplicate.c
    104 SOURCES += Marshal_ECC_Parameters.c
    105 SOURCES += Marshal_ECDH_KeyGen.c
    106 SOURCES += Marshal_ECDH_ZGen.c
    107 SOURCES += Marshal_EC_Ephemeral.c
    108 SOURCES += Marshal_EncryptDecrypt.c
    109 SOURCES += Marshal_EventSequenceComplete.c
    110 SOURCES += Marshal_EvictControl.c
    111 SOURCES += Marshal_FieldUpgradeData.c
    112 SOURCES += Marshal_FieldUpgradeStart.c
    113 SOURCES += Marshal_FirmwareRead.c
    114 SOURCES += Marshal_FlushContext.c
    115 SOURCES += Marshal_GetCapability.c
    116 SOURCES += Marshal_GetCommandAuditDigest.c
    117 SOURCES += Marshal_GetRandom.c
    118 SOURCES += Marshal_GetSessionAuditDigest.c
    119 SOURCES += Marshal_GetTestResult.c
    120 SOURCES += Marshal_GetTime.c
    121 SOURCES += Marshal_HMAC.c
    122 SOURCES += Marshal_HMAC_Start.c
    123 SOURCES += Marshal_Hash.c
    124 SOURCES += Marshal_HashSequenceStart.c
    125 SOURCES += Marshal_HierarchyChangeAuth.c
    126 SOURCES += Marshal_HierarchyControl.c
    127 SOURCES += Marshal_Import.c
    128 SOURCES += Marshal_IncrementalSelfTest.c
    129 SOURCES += Marshal_Load.c
    130 SOURCES += Marshal_LoadExternal.c
    131 SOURCES += Marshal_MakeCredential.c
    132 SOURCES += Marshal_NV_Certify.c
    133 SOURCES += Marshal_NV_ChangeAuth.c
    134 SOURCES += Marshal_NV_DefineSpace.c
    135 SOURCES += Marshal_NV_Extend.c
    136 SOURCES += Marshal_NV_GlobalWriteLock.c
    137 SOURCES += Marshal_NV_Increment.c
    138 SOURCES += Marshal_NV_Read.c
    139 SOURCES += Marshal_NV_ReadLock.c
    140 SOURCES += Marshal_NV_ReadPublic.c
    141 SOURCES += Marshal_NV_SetBits.c
    142 SOURCES += Marshal_NV_UndefineSpace.c
    143 SOURCES += Marshal_NV_UndefineSpaceSpecial.c
    144 SOURCES += Marshal_NV_Write.c
    145 SOURCES += Marshal_NV_WriteLock.c
    146 SOURCES += Marshal_ObjectChangeAuth.c
    147 SOURCES += Marshal_PCR_Allocate.c
    148 SOURCES += Marshal_PCR_Event.c
    149 SOURCES += Marshal_PCR_Extend.c
    150 SOURCES += Marshal_PCR_Read.c
    151 SOURCES += Marshal_PCR_Reset.c
    152 SOURCES += Marshal_PCR_SetAuthPolicy.c
    153 SOURCES += Marshal_PCR_SetAuthValue.c
    154 SOURCES += Marshal_PP_Commands.c
    155 SOURCES += Marshal_PolicyAuthValue.c
    156 SOURCES += Marshal_PolicyAuthorize.c
    157 SOURCES += Marshal_PolicyCommandCode.c
    158 SOURCES += Marshal_PolicyCounterTimer.c
    159 SOURCES += Marshal_PolicyCpHash.c
    160 SOURCES += Marshal_PolicyDuplicationSelect.c
    161 SOURCES += Marshal_PolicyGetDigest.c
    162 SOURCES += Marshal_PolicyLocality.c
    163 SOURCES += Marshal_PolicyNV.c
    164 SOURCES += Marshal_PolicyNameHash.c
    165 SOURCES += Marshal_PolicyNvWritten.c
    166 SOURCES += Marshal_PolicyOR.c
    167 SOURCES += Marshal_PolicyPCR.c
    168 SOURCES += Marshal_PolicyPassword.c
    169 SOURCES += Marshal_PolicyPhysicalPresence.c
    170 SOURCES += Marshal_PolicyRestart.c
    171 SOURCES += Marshal_PolicySecret.c
    172 SOURCES += Marshal_PolicySigned.c
    173 SOURCES += Marshal_PolicyTicket.c
    174 SOURCES += Marshal_Quote.c
    175 SOURCES += Marshal_RSA_Decrypt.c
    176 SOURCES += Marshal_RSA_Encrypt.c
    177 SOURCES += Marshal_ReadClock.c
    178 SOURCES += Marshal_ReadPublic.c
    179 SOURCES += Marshal_Rewrap.c
    180 SOURCES += Marshal_SelfTest.c
    181 SOURCES += Marshal_SequenceComplete.c
    182 SOURCES += Marshal_SequenceUpdate.c
    183 SOURCES += Marshal_SetAlgorithmSet.c
    184 SOURCES += Marshal_SetCommandCodeAuditStatus.c
    185 SOURCES += Marshal_SetPrimaryPolicy.c
    186 SOURCES += Marshal_Shutdown.c
    187 SOURCES += Marshal_Sign.c
    188 SOURCES += Marshal_StartAuthSession.c
    189 SOURCES += Marshal_Startup.c
    190 SOURCES += Marshal_StirRandom.c
    191 SOURCES += Marshal_TestParms.c
    192 SOURCES += Marshal_Unseal.c
    193 SOURCES += Marshal_VerifySignature.c
    194 SOURCES += Marshal_ZGen_2Phase.c
    195 SOURCES += Manufacture.c
    196 SOURCES += MathFunctions.c
    197 SOURCES += MemoryLib.c
    198 SOURCES += NV.c
    199 HOST_SOURCES += NVMem.c
    200 SOURCES += NV_Certify.c
    201 SOURCES += NV_ChangeAuth.c
    202 SOURCES += NV_DefineSpace.c
    203 SOURCES += NV_Extend.c
    204 SOURCES += NV_GlobalWriteLock.c
    205 SOURCES += NV_Increment.c
    206 SOURCES += NV_Read.c
    207 SOURCES += NV_ReadLock.c
    208 SOURCES += NV_ReadPublic.c
    209 SOURCES += NV_SetBits.c
    210 SOURCES += NV_UndefineSpace.c
    211 SOURCES += NV_UndefineSpaceSpecial.c
    212 SOURCES += NV_Write.c
    213 SOURCES += NV_WriteLock.c
    214 SOURCES += NV_spt.c
    215 SOURCES += Object.c
    216 SOURCES += ObjectChangeAuth.c
    217 SOURCES += Object_spt.c
    218 SOURCES += PCR.c
    219 SOURCES += PCR_Allocate.c
    220 SOURCES += PCR_Event.c
    221 SOURCES += PCR_Extend.c
    222 SOURCES += PCR_Read.c
    223 SOURCES += PCR_Reset.c
    224 SOURCES += PCR_SetAuthPolicy.c
    225 SOURCES += PCR_SetAuthValue.c
    226 SOURCES += PP.c
    227 SOURCES += PPPlat.c
    228 SOURCES += PP_Commands.c
    229 SOURCES += PlatformData.c
    230 SOURCES += PolicyAuthValue.c
    231 SOURCES += PolicyAuthorize.c
    232 SOURCES += PolicyCommandCode.c
    233 SOURCES += PolicyCounterTimer.c
    234 SOURCES += PolicyCpHash.c
    235 SOURCES += PolicyDuplicationSelect.c
    236 SOURCES += PolicyGetDigest.c
    237 SOURCES += PolicyLocality.c
    238 SOURCES += PolicyNV.c
    239 SOURCES += PolicyNameHash.c
    240 SOURCES += PolicyNvWritten.c
    241 SOURCES += PolicyOR.c
    242 SOURCES += PolicyPCR.c
    243 SOURCES += PolicyPassword.c
    244 SOURCES += PolicyPhysicalPresence.c
    245 SOURCES += PolicyRestart.c
    246 SOURCES += PolicySecret.c
    247 SOURCES += PolicySigned.c
    248 SOURCES += PolicyTicket.c
    249 SOURCES += Policy_spt.c
    250 SOURCES += Power.c
    251 SOURCES += PowerPlat.c
    252 SOURCES += PropertyCap.c
    253 SOURCES += Quote.c
    254 HOST_SOURCES += RSAData.c
    255 HOST_SOURCES += RSAKeySieve.c
    256 SOURCES += RSA_Decrypt.c
    257 SOURCES += RSA_Encrypt.c
    258 SOURCES += ReadClock.c
    259 SOURCES += ReadPublic.c
    260 SOURCES += Rewrap.c
    261 SOURCES += SelfTest.c
    262 SOURCES += SequenceComplete.c
    263 SOURCES += SequenceUpdate.c
    264 SOURCES += Session.c
    265 SOURCES += SessionProcess.c
    266 SOURCES += SetAlgorithmSet.c
    267 SOURCES += SetCommandCodeAuditStatus.c
    268 SOURCES += SetPrimaryPolicy.c
    269 SOURCES += Shutdown.c
    270 SOURCES += Sign.c
    271 SOURCES += StartAuthSession.c
    272 SOURCES += Startup.c
    273 SOURCES += StirRandom.c
    274 #SOURCES += TPMCmdp.c
    275 #SOURCES += TPMCmds.c
    276 #SOURCES += TcpServer.c
    277 SOURCES += TestParms.c
    278 SOURCES += Ticket.c
    279 SOURCES += Time.c
    280 SOURCES += TpmFail.c
    281 SOURCES += Unique.c
    282 SOURCES += Unseal.c
    283 SOURCES += VerifySignature.c
    284 SOURCES += ZGen_2Phase.c
    285 SOURCES += _TPM_Hash_Data.c
    286 SOURCES += _TPM_Hash_End.c
    287 SOURCES += _TPM_Hash_Start.c
    288 SOURCES += _TPM_Init.c
    289 SOURCES += tpm_generated.c
    290 
    291 # Use V=1 for verbose output
    292 ifeq ($(V),)
    293 Q := @
    294 else
    295 Q :=
    296 endif
    297 
    298 ifeq ($(EMBEDDED_MODE),)
    299 SOURCES += $(HOST_SOURCES)
    300 CFLAGS += -Wall -Werror -fPIC
    301 else
    302 SOURCES += stubs_ecc.c
    303 SOURCES += stubs_hash.c
    304 SOURCES += stubs_sym.c
    305 CFLAGS += -DEMBEDDED_MODE
    306 # Configure system headers appropriately.
    307 CFLAGS += -DTHIRD_PARTY
    308 ifneq ($(ROOTDIR),)
    309 CFLAGS += -I$(ROOTDIR)
    310 endif
    311 endif
    312 
    313 # 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.
    325 OBJS = $(patsubst %.c,$(obj)/$(OBJ_PREFIX)%.o,$(SOURCES))
    326 DEPS = $(patsubst %.c,$(obj)/$(OBJ_PREFIX)%.d,$(SOURCES))
    327 
    328 # This is the default target
    329 $(obj)/libtpm2.a: $(OBJS)
    330 	@echo "  AR      $(notdir $@)"
    331 	$(Q)$(AR) scr $@ $^
    332 
    333 $(obj):
    334 	@echo "  MKDIR   $(obj)"
    335 	$(Q)mkdir -p $(obj)
    336 
    337 $(obj)/$(OBJ_PREFIX)%.d $(obj)/$(OBJ_PREFIX)%.o: %.c | $(obj)
    338 	@echo "  CC      $(notdir $<)"
    339 	$(Q)$(CC) $(CFLAGS) -c -MMD -MF $(basename $@).d -o $(basename $@).o $<
    340 
    341 .PHONY: clean
    342 clean:
    343 	@echo "  RM      $(obj)"
    344 	$(Q)rm -rf $(obj)
    345 
    346 ifneq ($(MAKECMDGOALS),clean)
    347 -include $(DEPS)
    348 endif
    349