]> git.proxmox.com Git - libtpms.git/blob - src/Makefile.am
tpm2: Rename OIDS.h to OIDs.h
[libtpms.git] / src / Makefile.am
1 #
2 # src/Makefile.am
3 #
4 # For the license, see the LICENSE file in the root directory.
5 #
6
7 lib_LTLIBRARIES=libtpms.la
8
9 common_CFLAGS = -include tpm_library_conf.h \
10 -I$(top_srcdir)/include/libtpms \
11 -I$(top_builddir)/include/libtpms \
12 $(HARDENING_CFLAGS) \
13 $(SANITIZERS) \
14 $(FUZZER)
15
16
17 LDFLAGS += $(HARDENING_LDFLAGS) $(SANITIZERS) $(FUZZER)
18
19 #
20 # TPM1.2
21 #
22
23 noinst_LTLIBRARIES = libtpms_tpm12.la
24
25 libtpms_la_LIBADD = libtpms_tpm12.la
26
27 libtpms_tpm12_la_LIBADD =
28
29 libtpms_tpm12_la_CFLAGS = $(common_CFLAGS)
30
31 #Build 1.2 TPM
32 libtpms_tpm12_la_CFLAGS += -DTPM_V12
33 # build a PC Client TPM
34 libtpms_tpm12_la_CFLAGS += -DTPM_PCCLIENT
35 # upon initialization have the TPM load the volatile state
36 libtpms_tpm12_la_CFLAGS += -DTPM_VOLATILE_LOAD
37 # build the TPM enabled and activated
38 libtpms_tpm12_la_CFLAGS += -DTPM_ENABLE_ACTIVATE
39 # build with AES support for symmetric crypto
40 libtpms_tpm12_la_CFLAGS += -DTPM_AES
41 # build with libtpms callback support
42 libtpms_tpm12_la_CFLAGS += -DTPM_LIBTPMS_CALLBACKS
43 # let the default NVRAM write to disk
44 libtpms_tpm12_la_CFLAGS += -DTPM_NV_DISK
45 # build a POSIX type of TPM
46 libtpms_tpm12_la_CFLAGS += -DTPM_POSIX
47 # build without maintenance commands
48 libtpms_tpm12_la_CFLAGS += -DTPM_NOMAINTENANCE_COMMANDS
49
50 libtpms_tpm12_la_CFLAGS += @DEBUG_DEFINES@
51
52 CRYPTO_OBJFILES =
53
54 libtpms_tpm12_la_SOURCES = \
55 tpm12/tpm_admin.c \
56 tpm12/tpm_audit.c \
57 tpm12/tpm_auth.c \
58 tpm12/tpm_cryptoh.c \
59 tpm12/tpm_counter.c \
60 tpm12/tpm_daa.c \
61 tpm12/tpm_debug.c \
62 tpm12/tpm_delegate.c \
63 tpm12/tpm_digest.c \
64 tpm12/tpm_error.c \
65 tpm12/tpm_global.c \
66 tpm12/tpm_identity.c \
67 tpm12/tpm_init.c \
68 tpm12/tpm_libtpms_io.c \
69 tpm12/tpm_key.c \
70 tpm12/tpm_load.c \
71 tpm12/tpm_maint.c \
72 tpm12/tpm_memory.c \
73 tpm12/tpm_migration.c \
74 tpm12/tpm_nonce.c \
75 tpm12/tpm_nvfile.c \
76 tpm12/tpm_nvram.c \
77 tpm12/tpm_owner.c \
78 tpm12/tpm_pcr.c \
79 tpm12/tpm_permanent.c \
80 tpm12/tpm_platform.c \
81 tpm12/tpm_process.c \
82 tpm12/tpm_secret.c \
83 tpm12/tpm_session.c \
84 tpm12/tpm_sizedbuffer.c \
85 tpm12/tpm_startup.c \
86 tpm12/tpm_store.c \
87 tpm12/tpm_storage.c \
88 tpm12/tpm_ticks.c \
89 tpm12/tpm_time.c \
90 tpm12/tpm_transport.c \
91 tpm12/tpm_ver.c \
92 tpm12/tpm_svnrevision.c \
93 tpm_tpm12_interface.c \
94 tpm_tpm12_tis.c
95
96 noinst_HEADERS = \
97 tpm12/tpm_admin.h \
98 tpm12/tpm_audit.h \
99 tpm12/tpm_auth.h \
100 tpm12/tpm_commands.h \
101 tpm12/tpm_constants.h \
102 tpm12/tpm_counter.h \
103 tpm12/tpm_crypto.h \
104 tpm12/tpm_cryptoh.h \
105 tpm12/tpm_daa.h \
106 tpm12/tpm_debug.h \
107 tpm12/tpm_delegate.h \
108 tpm12/tpm_digest.h \
109 tpm12/tpm_global.h \
110 tpm12/tpm_identity.h \
111 tpm12/tpm_init.h \
112 tpm12/tpm_io.h \
113 tpm12/tpm_key.h \
114 tpm_library_conf.h \
115 tpm_library_intern.h \
116 tpm12/tpm_load.h \
117 tpm12/tpm_maint.h \
118 tpm12/tpm_migration.h \
119 tpm12/tpm_nonce.h \
120 tpm12/tpm_nvfile.h \
121 tpm12/tpm_nvram_const.h \
122 tpm12/tpm_nvram.h \
123 tpm12/tpm_owner.h \
124 tpm12/tpm_pcr.h \
125 tpm12/tpm_permanent.h \
126 tpm12/tpm_platform.h \
127 tpm12/tpm_process.h \
128 tpm12/tpm_secret.h \
129 tpm12/tpm_session.h \
130 tpm12/tpm_sizedbuffer.h \
131 tpm12/tpm_startup.h \
132 tpm12/tpm_storage.h \
133 tpm12/tpm_store.h \
134 tpm12/tpm_structures.h \
135 tpm12/tpm_svnrevision.h \
136 tpm12/tpm_ticks.h \
137 tpm12/tpm_time.h \
138 tpm12/tpm_transport.h \
139 tpm12/tpm_ver.h
140
141 if LIBTPMS_USE_FREEBL
142
143 libtpms_tpm12_la_SOURCES += tpm12/tpm_crypto_freebl.c
144 libtpms_tpm12_la_LIBADD += -lfreebl -lgmp -lnspr4 -lnssutil3 -lnss3
145
146 #work-around broken freebl includes
147 libtpms_tpm12_la_CFLAGS += $(shell [ ! -r /usr/include/nss3/alghmac.h ] && \
148 touch alghmac.h && \
149 echo -I./)
150 # tpm12/tpm_crypto_freebl.c: work around #include "blapi.h" : should be <nss3/blapi.h>
151 libtpms_tpm12_la_CFLAGS += $(shell nss-config --cflags)
152 #including nss3/blapi.h requires a look into nspr4 dir
153 libtpms_tpm12_la_CFLAGS += $(shell nspr-config --cflags)
154
155 else
156
157 if LIBTPMS_USE_OPENSSL
158
159 libtpms_tpm12_la_SOURCES += tpm12/tpm_crypto.c
160 libtpms_tpm12_la_LIBADD += -lcrypto
161
162 endif # LIBTPMS_USE_OPENSSL
163
164 endif # LIBTPMS_USE_FREEBL
165
166 # TPM2
167 #
168
169 if WITH_TPM2
170
171 noinst_LTLIBRARIES += libtpms_tpm2.la
172
173 libtpms_la_LIBADD += libtpms_tpm2.la
174
175 libtpms_tpm2_la_LIBADD = $(LIBRT_LIBS)
176
177 libtpms_tpm2_la_CFLAGS = $(common_CFLAGS)
178
179 libtpms_tpm2_la_CFLAGS += -D_POSIX_
180 libtpms_tpm2_la_CFLAGS += -DTPM_POSIX
181 # build with libtpms callback support
182 libtpms_tpm2_la_CFLAGS += -DTPM_LIBTPMS_CALLBACKS
183
184 libtpms_tpm2_la_SOURCES = \
185 tpm2/AlgorithmCap.c \
186 tpm2/AlgorithmTests.c \
187 tpm2/AsymmetricCommands.c \
188 tpm2/AttestationCommands.c \
189 tpm2/Attest_spt.c \
190 tpm2/AuditCommands.c \
191 tpm2/Bits.c \
192 tpm2/BnConvert.c \
193 tpm2/BnMath.c \
194 tpm2/BnMemory.c \
195 tpm2/Cancel.c \
196 tpm2/CapabilityCommands.c \
197 tpm2/Clock.c \
198 tpm2/ClockCommands.c \
199 tpm2/CommandAudit.c \
200 tpm2/CommandCodeAttributes.c \
201 tpm2/CommandDispatcher.c \
202 tpm2/ContextCommands.c \
203 tpm2/Context_spt.c \
204 tpm2/CryptEccData.c \
205 tpm2/CryptSelfTest.c \
206 tpm2/CryptUtil.c \
207 tpm2/DA.c \
208 tpm2/DebugHelpers.c \
209 tpm2/DictionaryCommands.c \
210 tpm2/DuplicationCommands.c \
211 tpm2/EACommands.c \
212 tpm2/EncryptDecrypt_spt.c \
213 tpm2/Entity.c \
214 tpm2/Entropy.c \
215 tpm2/EphemeralCommands.c \
216 tpm2/ExecCommand.c \
217 tpm2/Global.c \
218 tpm2/Handle.c \
219 tpm2/HashCommands.c \
220 tpm2/Hierarchy.c \
221 tpm2/HierarchyCommands.c \
222 tpm2/IntegrityCommands.c \
223 tpm2/IoBuffers.c \
224 tpm2/Locality.c \
225 tpm2/LocalityPlat.c \
226 tpm2/ManagementCommands.c \
227 tpm2/Manufacture.c \
228 tpm2/Marshal.c \
229 tpm2/MathOnByteBuffers.c \
230 tpm2/Memory.c \
231 tpm2/NVCommands.c \
232 tpm2/NVDynamic.c \
233 tpm2/NVMem.c \
234 tpm2/NVReserved.c \
235 tpm2/NV_spt.c \
236 tpm2/Object.c \
237 tpm2/ObjectCommands.c \
238 tpm2/Object_spt.c \
239 tpm2/PCR.c \
240 tpm2/PlatformData.c \
241 tpm2/Policy_spt.c \
242 tpm2/Power.c \
243 tpm2/PowerPlat.c \
244 tpm2/PP.c \
245 tpm2/PPPlat.c \
246 tpm2/PrimeData.c \
247 tpm2/PropertyCap.c \
248 tpm2/RandomCommands.c \
249 tpm2/Response.c \
250 tpm2/ResponseCodeProcessing.c \
251 tpm2/RunCommand.c \
252 tpm2/Session.c \
253 tpm2/SessionCommands.c \
254 tpm2/SessionProcess.c \
255 tpm2/SigningCommands.c \
256 tpm2/StartupCommands.c \
257 tpm2/SymmetricCommands.c \
258 tpm2/TestingCommands.c \
259 tpm2/Ticket.c \
260 tpm2/Time.c \
261 tpm2/TpmAsn1.c \
262 tpm2/TpmSizeChecks.c \
263 tpm2/TPMCmdp.c \
264 tpm2/TpmFail.c \
265 tpm2/Unique.c \
266 tpm2/Unmarshal.c \
267 tpm2/Vendor_TCG_Test.c \
268 tpm2/X509_ECC.c \
269 tpm2/X509_RSA.c \
270 tpm2/X509_spt.c \
271 tpm_tpm2_interface.c \
272 tpm_tpm2_tis.c \
273 \
274 tpm2/LibtpmsCallbacks.c \
275 tpm2/NVMarshal.c \
276 tpm2/StateMarshal.c \
277 tpm2/Volatile.c
278
279 noinst_HEADERS += \
280 compiler.h \
281 tpm2/crypto/CryptCmac_fp.h \
282 tpm2/crypto/CryptDes_fp.h \
283 tpm2/crypto/CryptEcc.h \
284 tpm2/crypto/CryptEccKeyExchange_fp.h \
285 tpm2/crypto/CryptEccMain_fp.h \
286 tpm2/crypto/CryptEccSignature_fp.h \
287 tpm2/crypto/CryptHash_fp.h \
288 tpm2/crypto/CryptHash.h \
289 tpm2/crypto/CryptPrime_fp.h \
290 tpm2/crypto/CryptPrimeSieve_fp.h \
291 tpm2/crypto/CryptRand_fp.h \
292 tpm2/crypto/CryptRand.h \
293 tpm2/crypto/CryptRsa_fp.h \
294 tpm2/crypto/CryptRsa.h \
295 tpm2/crypto/CryptSelfTest_fp.h \
296 tpm2/crypto/CryptSmac_fp.h \
297 tpm2/crypto/CryptSym.h \
298 tpm2/crypto/CryptSym_fp.h \
299 tpm2/crypto/CryptTest.h \
300 tpm2/crypto/CryptUtil_fp.h \
301 tpm2/ActivateCredential_fp.h \
302 tpm2/AlgorithmCap_fp.h \
303 tpm2/AlgorithmTests_fp.h \
304 tpm2/Attest_spt_fp.h \
305 tpm2/BaseTypes.h \
306 tpm2/Bits_fp.h \
307 tpm2/Capabilities.h \
308 tpm2/CertifyCreation_fp.h \
309 tpm2/CertifyX509_fp.h \
310 tpm2/Certify_fp.h \
311 tpm2/ChangeEPS_fp.h \
312 tpm2/ChangePPS_fp.h \
313 tpm2/ClearControl_fp.h \
314 tpm2/Clear_fp.h \
315 tpm2/ClockRateAdjust_fp.h \
316 tpm2/ClockSet_fp.h \
317 tpm2/CommandAttributeData.h \
318 tpm2/CommandAttributes.h \
319 tpm2/CommandAudit_fp.h \
320 tpm2/CommandCodeAttributes_fp.h \
321 tpm2/CommandDispatchData.h \
322 tpm2/CommandDispatcher_fp.h \
323 tpm2/Commit_fp.h \
324 tpm2/CompilerDependencies.h \
325 tpm2/ContextLoad_fp.h \
326 tpm2/ContextSave_fp.h \
327 tpm2/Context_spt_fp.h \
328 tpm2/Create_fp.h \
329 tpm2/CreateLoaded_fp.h \
330 tpm2/CreatePrimary_fp.h \
331 tpm2/CryptSelfTest_fp.h \
332 tpm2/DA_fp.h \
333 tpm2/DebugHelpers_fp.h \
334 tpm2/DictionaryAttackLockReset_fp.h \
335 tpm2/DictionaryAttackParameters_fp.h \
336 tpm2/Duplicate_fp.h \
337 tpm2/EccTestData.h \
338 tpm2/ECC_Parameters_fp.h \
339 tpm2/ECDH_KeyGen_fp.h \
340 tpm2/ECDH_ZGen_fp.h \
341 tpm2/EC_Ephemeral_fp.h \
342 tpm2/EncryptDecrypt2_fp.h \
343 tpm2/EncryptDecrypt_fp.h \
344 tpm2/EncryptDecrypt_spt_fp.h \
345 tpm2/Entity_fp.h \
346 tpm2/EventSequenceComplete_fp.h \
347 tpm2/EvictControl_fp.h \
348 tpm2/ExecCommand_fp.h \
349 tpm2/FlushContext_fp.h \
350 tpm2/GetCapability_fp.h \
351 tpm2/GetCommandAuditDigest_fp.h \
352 tpm2/GetRandom_fp.h \
353 tpm2/GetSessionAuditDigest_fp.h \
354 tpm2/GetTestResult_fp.h \
355 tpm2/GetTime_fp.h \
356 tpm2/Global.h \
357 tpm2/GpMacros.h \
358 tpm2/Handle_fp.h \
359 tpm2/Hash_fp.h \
360 tpm2/HashSequenceStart_fp.h \
361 tpm2/HashTestData.h \
362 tpm2/HierarchyChangeAuth_fp.h \
363 tpm2/HierarchyControl_fp.h \
364 tpm2/Hierarchy_fp.h \
365 tpm2/HMAC_fp.h \
366 tpm2/HMAC_Start_fp.h \
367 tpm2/Import_fp.h \
368 tpm2/IncrementalSelfTest_fp.h \
369 tpm2/InternalRoutines.h \
370 tpm2/IoBuffers_fp.h \
371 tpm2/KdfTestData.h \
372 tpm2/LoadExternal_fp.h \
373 tpm2/Load_fp.h \
374 tpm2/Locality_fp.h \
375 tpm2/MAC_fp.h \
376 tpm2/MAC_Start_fp.h \
377 tpm2/MakeCredential_fp.h \
378 tpm2/Manufacture_fp.h \
379 tpm2/Marshal_fp.h \
380 tpm2/MathOnByteBuffers_fp.h \
381 tpm2/Memory_fp.h \
382 tpm2/MinMax.h \
383 tpm2/NV_Certify_fp.h \
384 tpm2/NV_ChangeAuth_fp.h \
385 tpm2/NV_DefineSpace_fp.h \
386 tpm2/NVDynamic_fp.h \
387 tpm2/NV_Extend_fp.h \
388 tpm2/NV_GlobalWriteLock_fp.h \
389 tpm2/NV.h \
390 tpm2/NV_Increment_fp.h \
391 tpm2/NV_Read_fp.h \
392 tpm2/NV_ReadLock_fp.h \
393 tpm2/NV_ReadPublic_fp.h \
394 tpm2/NVReserved_fp.h \
395 tpm2/NV_SetBits_fp.h \
396 tpm2/NV_spt_fp.h \
397 tpm2/NV_UndefineSpace_fp.h \
398 tpm2/NV_UndefineSpaceSpecial_fp.h \
399 tpm2/NV_Write_fp.h \
400 tpm2/NV_WriteLock_fp.h \
401 tpm2/OIDs.h \
402 tpm2/ObjectChangeAuth_fp.h \
403 tpm2/Object_fp.h \
404 tpm2/Object_spt_fp.h \
405 tpm2/PCR_Allocate_fp.h \
406 tpm2/PCR_Event_fp.h \
407 tpm2/PCR_Extend_fp.h \
408 tpm2/PCR_fp.h \
409 tpm2/PCR_Read_fp.h \
410 tpm2/PCR_Reset_fp.h \
411 tpm2/PCR_SetAuthPolicy_fp.h \
412 tpm2/PCR_SetAuthValue_fp.h \
413 tpm2/Platform.h \
414 tpm2/PlatformData.h \
415 tpm2/Platform_fp.h \
416 tpm2/PolicyAuthorize_fp.h \
417 tpm2/PolicyAuthorizeNV_fp.h \
418 tpm2/PolicyAuthValue_fp.h \
419 tpm2/PolicyCommandCode_fp.h \
420 tpm2/PolicyCounterTimer_fp.h \
421 tpm2/PolicyCpHash_fp.h \
422 tpm2/PolicyDuplicationSelect_fp.h \
423 tpm2/PolicyGetDigest_fp.h \
424 tpm2/PolicyLocality_fp.h \
425 tpm2/PolicyNameHash_fp.h \
426 tpm2/PolicyNV_fp.h \
427 tpm2/PolicyNvWritten_fp.h \
428 tpm2/PolicyOR_fp.h \
429 tpm2/PolicyPassword_fp.h \
430 tpm2/PolicyPCR_fp.h \
431 tpm2/PolicyPhysicalPresence_fp.h \
432 tpm2/PolicyRestart_fp.h \
433 tpm2/PolicySecret_fp.h \
434 tpm2/PolicySigned_fp.h \
435 tpm2/Policy_spt_fp.h \
436 tpm2/PolicyTemplate_fp.h \
437 tpm2/PolicyTicket_fp.h \
438 tpm2/Power_fp.h \
439 tpm2/PP_Commands_fp.h \
440 tpm2/PP_fp.h \
441 tpm2/PRNG_TestVectors.h \
442 tpm2/PropertyCap_fp.h \
443 tpm2/Quote_fp.h \
444 tpm2/ReadClock_fp.h \
445 tpm2/ReadPublic_fp.h \
446 tpm2/ResponseCodeProcessing_fp.h \
447 tpm2/Response_fp.h \
448 tpm2/Rewrap_fp.h \
449 tpm2/RsaTestData.h \
450 tpm2/RSA_Decrypt_fp.h \
451 tpm2/RSA_Encrypt_fp.h \
452 tpm2/SelfTest.h \
453 tpm2/SelfTest_fp.h \
454 tpm2/SequenceComplete_fp.h \
455 tpm2/SequenceUpdate_fp.h \
456 tpm2/Session_fp.h \
457 tpm2/SessionProcess_fp.h \
458 tpm2/SetAlgorithmSet_fp.h \
459 tpm2/SetCommandCodeAuditStatus_fp.h \
460 tpm2/SetPrimaryPolicy_fp.h \
461 tpm2/Shutdown_fp.h \
462 tpm2/Sign_fp.h \
463 tpm2/Simulator_fp.h \
464 tpm2/StartAuthSession_fp.h \
465 tpm2/Startup_fp.h \
466 tpm2/StirRandom_fp.h \
467 tpm2/SupportLibraryFunctionPrototypes_fp.h \
468 tpm2/SymmetricTest.h \
469 tpm2/SymmetricTestData.h \
470 tpm2/swap.h \
471 tpm2/TcpServerPosix_fp.h \
472 tpm2/TestParms_fp.h \
473 tpm2/Ticket_fp.h \
474 tpm2/Time_fp.h \
475 tpm2/TPMB.h \
476 tpm2/TpmAlgorithmDefines.h \
477 tpm2/TpmAsn1.h \
478 tpm2/TpmAsn1_fp.h \
479 tpm2/TpmBuildSwitches.h \
480 tpm2/TpmError.h \
481 tpm2/TpmFail_fp.h \
482 tpm2/TpmProfile.h \
483 tpm2/Tpm.h \
484 tpm2/_TPM_Hash_Data_fp.h \
485 tpm2/_TPM_Hash_End_fp.h \
486 tpm2/_TPM_Hash_Start_fp.h \
487 tpm2/_TPM_Init_fp.h \
488 tpm2/TpmSizeChecks_fp.h \
489 tpm2/TpmTcpProtocol.h \
490 tpm2/TpmTypes.h \
491 tpm2/Unmarshal_fp.h \
492 tpm2/Unseal_fp.h \
493 tpm2/VendorString.h \
494 tpm2/Vendor_TCG_Test_fp.h \
495 tpm2/VerifySignature_fp.h \
496 tpm2/X509.h \
497 tpm2/X509_ECC_fp.h \
498 tpm2/X509_RSA_fp.h \
499 tpm2/X509_spt_fp.h \
500 tpm2/ZGen_2Phase_fp.h \
501 \
502 tpm2/BackwardsCompatibility.h \
503 tpm2/LibtpmsCallbacks.h \
504 tpm2/NVMarshal.h \
505 tpm2/StateMarshal.h \
506 tpm2/Utils.h \
507 tpm2/Volatile.h
508
509 if LIBTPMS_USE_OPENSSL
510
511 libtpms_tpm2_la_SOURCES += \
512 tpm2/crypto/openssl/CryptCmac.c \
513 tpm2/crypto/openssl/CryptDes.c \
514 tpm2/crypto/openssl/CryptEccKeyExchange.c \
515 tpm2/crypto/openssl/CryptEccMain.c \
516 tpm2/crypto/openssl/CryptEccSignature.c \
517 tpm2/crypto/openssl/CryptHash.c \
518 tpm2/crypto/openssl/CryptPrime.c \
519 tpm2/crypto/openssl/CryptPrimeSieve.c \
520 tpm2/crypto/openssl/CryptRand.c \
521 tpm2/crypto/openssl/CryptRsa.c \
522 tpm2/crypto/openssl/CryptSmac.c \
523 tpm2/crypto/openssl/CryptSym.c \
524 tpm2/crypto/openssl/Helpers.c \
525 tpm2/crypto/openssl/TpmToOsslDesSupport.c \
526 tpm2/crypto/openssl/TpmToOsslMath.c \
527 tpm2/crypto/openssl/TpmToOsslSupport.c
528
529 noinst_HEADERS += \
530 tpm2/crypto/openssl/BnConvert_fp.h \
531 tpm2/crypto/openssl/BnMath_fp.h \
532 tpm2/crypto/openssl/BnMemory_fp.h \
533 tpm2/crypto/openssl/BnValues.h \
534 tpm2/crypto/openssl/Helpers_fp.h \
535 tpm2/crypto/openssl/LibSupport.h \
536 tpm2/crypto/openssl/TpmToOsslDesSupport_fp.h \
537 tpm2/crypto/openssl/TpmToOsslHash.h \
538 tpm2/crypto/openssl/TpmToOsslMath_fp.h \
539 tpm2/crypto/openssl/TpmToOsslMath.h \
540 tpm2/crypto/openssl/TpmToOsslSupport_fp.h \
541 tpm2/crypto/openssl/TpmToOsslSym.h
542
543 libtpms_tpm2_la_CFLAGS += \
544 -I $(srcdir)/tpm2 \
545 -I $(srcdir)/tpm2/crypto \
546 -I $(srcdir)/tpm2/crypto/openssl
547
548 endif # LIBTPMS_USE_OPENSSL
549
550 endif # WITH_TPM2
551
552 #
553 # Library API layer
554 #
555
556 libtpms_la_SOURCES = \
557 tpm_library.c
558
559 libtpms_la_CFLAGS = $(common_CFLAGS)
560
561 libtpms_la_LDFLAGS = -version-info $(LIBTPMS_VERSION_INFO) \
562 -no-undefined
563
564 if HAVE_VERSION_SCRIPT
565 libtpms_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libtpms.syms
566 endif
567
568 LDFLAGS_ARCH = $(findstring -m32, $(CFLAGS))
569 LDFLAGS_ARCH += $(findstring -m64, $(CFLAGS))
570 LDFLAGS_ARCH += $(findstring -m32, $(LDFLAGS))
571 LDFLAGS_ARCH += $(findstring -m64, $(LDFLAGS))
572
573 check-local: SHELL?="/usr/bin/env bash"
574 check-local:
575 @case $(host_os) in \
576 openbsd*) ADDLIBS="-lc" ;; \
577 darwin*|freebsd*) LDFLAGS_OS="-shared" ;; \
578 *) ADDLIBS="" ;; \
579 esac; \
580 ($(CC) $$LDFLAGS_OS $(LDFLAGS_ARCH) -nostdlib -L./.libs -ltpms $$ADDLIBS 2>/dev/null || \
581 (echo "There are undefined symbols in libtpms ($$LDFLAGS_OS $(LDFLAGS_ARCH))";\
582 $(CC) $$LDFLAGS_OS $(LDFLAGS_ARCH) -nostdlib -L./.libs -ltpms $$ADDLIBS 2>&1 | grep libtpms))
583 @case $(host_os) in \
584 openbsd*) ADDLIBS="-lc" ;; \
585 darwin*|freebsd*) LDFLAGS_OS="-shared" ;; \
586 *) ADDLIBS="" ;; \
587 esac; \
588 $(CC) $$LDFLAGS_OS $(LDFLAGS_ARCH) -nostdlib -L./.libs -ltpms $$ADDLIBS 2>/dev/null
589 rm a.out || true
590
591 EXTRA_DIST = \
592 tpm12/tpm_crypto_freebl.c \
593 tpm12/tpm_crypto.c \
594 libtpms.syms \
595 test.syms
596
597 CLEANFILES = \
598 a.out \
599 *.gcov \
600 *.gcda \
601 *.gcno \
602 tpm12/*.gcov \
603 tpm12/*.gcda \
604 tpm12/*.gcno \
605 tpm2/*.gcov \
606 tpm2/*.gcda \
607 tpm2/*.gcno \
608 tpm2/crypto/openssl/*.gcov \
609 tpm2/crypto/openssl/*.gcda \
610 tpm2/crypto/openssl/*.gcno