#################################################################################
#										#
#										#
#	TPM2 Library and Utilities makefile - Common to all variations		#
#			     Written by Ken Goldman				#
#		       IBM Thomas J. Watson Research Center			#
#	      $Id: makefile-common 2 2014-12-26 17:40:17Z kgoldman $		#
#										#
# (c) Copyright IBM Corporation 2014						#
# 										#
# All rights reserved.								#
# 										#
# Redistribution and use in source and binary forms, with or without		#
# modification, are permitted provided that the following conditions are	#
# met:										#
# 										#
# Redistributions of source code must retain the above copyright notice,	#
# this list of conditions and the following disclaimer.				#
# 										#
# Redistributions in binary form must reproduce the above copyright		#
# notice, this list of conditions and the following disclaimer in the		#
# documentation and/or other materials provided with the distribution.		#
# 										#
# Neither the names of the IBM Corporation nor the names of its			#
# contributors may be used to endorse or promote products derived from		#
# this software without specific prior written permission.			#
# 										#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS		#
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT		#
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR		#
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT		#
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,	#
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT		#
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,		#
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY		#
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT		#
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE		#
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.		#
#										#
#################################################################################

# compile - common flags for TSS library and applications

CCFLAGS += 				\
	-Wall -W -Wmissing-declarations -Wmissing-prototypes -Wnested-externs \
	-ggdb -O0 -c 			\
	-DTPM_BITFIELD_LE		\
	-DTPM_ENCRYPT_SESSIONS_DEFAULT="\"0\""


# link - common flags for Posix and Windows, for TSS library and applications

LNFLAGS += 	-ggdb 			\
		-DTPM_BITFIELD_LE	\


ALL = 	$(LIBTSS)				\
	$(LIBTSSA)				\
	activatecredential$(EXE)		\
	eventextend$(EXE)			\
	certify$(EXE)				\
	changeeps$(EXE)				\
	changepps$(EXE)				\
	clear$(EXE)				\
	clearcontrol$(EXE)			\
	clockrateadjust$(EXE)			\
	clockset$(EXE)				\
	contextload$(EXE)			\
	contextsave$(EXE)			\
	create$(EXE)				\
	createprimary$(EXE)			\
	dictionaryattacklockreset$(EXE) 	\
	dictionaryattackparameters$(EXE) 	\
	duplicate$(EXE)				\
	eccparameters$(EXE)			\
	encryptdecrypt$(EXE)			\
	evictcontrol$(EXE)			\
	eventsequencecomplete$(EXE)		\
	flushcontext$(EXE)			\
	getcommandauditdigest$(EXE)		\
	getcapability$(EXE)			\
	getrandom$(EXE)				\
	getsessionauditdigest$(EXE)		\
	gettime$(EXE)				\
	hash$(EXE)				\
	hashsequencestart$(EXE) 		\
	hierarchycontrol$(EXE) 			\
	hierarchychangeauth$(EXE) 		\
	hmac$(EXE)				\
	hmacstart$(EXE)				\
	import$(EXE)				\
	load$(EXE)				\
	loadexternal$(EXE)			\
	makecredential$(EXE)			\
	nvcertify$(EXE)				\
	nvchangeauth$(EXE)			\
	nvdefinespace$(EXE)			\
	nvextend$(EXE) 				\
	nvglobalwritelock$(EXE)			\
	nvincrement$(EXE) 			\
	nvread$(EXE)				\
	nvreadlock$(EXE)			\
	nvreadpublic$(EXE)			\
	nvsetbits$(EXE)				\
	nvundefinespace$(EXE)			\
	nvundefinespacespecial$(EXE)		\
	nvwrite$(EXE)				\
	nvwritelock$(EXE)			\
	objectchangeauth$(EXE) 			\
	pcrallocate$(EXE)			\
	pcrevent$(EXE)				\
	pcrextend$(EXE)				\
	pcrread$(EXE)				\
	pcrreset$(EXE)				\
	policyauthorize$(EXE)			\
	policyauthvalue$(EXE)			\
	policycommandcode$(EXE) 		\
	policycphash$(EXE)	 		\
	policycountertimer$(EXE)		\
	policygetdigest$(EXE)			\
	policymaker$(EXE)			\
	policymakerpcr$(EXE)			\
	policynv$(EXE)				\
	policynvwritten$(EXE)			\
	policypassword$(EXE)			\
	policypcr$(EXE)				\
	policyor$(EXE)				\
	policyrestart$(EXE)			\
	policysigned$(EXE)			\
	policysecret$(EXE)			\
	policyticket$(EXE)			\
	powerup$(EXE)				\
	quote$(EXE)				\
	readclock$(EXE)				\
	readpublic$(EXE)			\
	returncode$(EXE)			\
	rewrap$(EXE)				\
	rsadecrypt$(EXE)			\
	rsaencrypt$(EXE)			\
	sequencecomplete$(EXE)			\
	sequenceupdate$(EXE)			\
	setprimarypolicy$(EXE) 			\
	shutdown$(EXE) 				\
	sign$(EXE)				\
	startauthsession$(EXE)			\
	startup$(EXE) 				\
	stirrandom$(EXE)			\
	unseal$(EXE)				\
	verifysignature$(EXE)			\
						\
	signapp$(EXE)				\
	writeapp$(EXE)				\
	createek$(EXE)

ALL	+= 					\

# TSS shared library headers 

TSS_HEADERS = 	tssauth.h 			\
		tss2/tssmarshal.h		\
		tss2/tss.h			\
		tss2/tssproperties.h		\
		tss2/tssutils.h			\
		tss2/tsscrypto.h		\
		tss2/tsserror.h			\
		tss2/tssresponsecode.h		\
		tsssocket.h  			\
		tssdev.h  			\
		tss2/tsstransmit.h		\
		fail.h				\
		tss2/tssprint.h	

# TSS shared library object files

TSS_OBJS = 	tss.o			\
		tssproperties.o		\
		tssmarshal.o		\
		tssauth.o 		\
		tsscrypto.o 		\
		tssutils.o 		\
		tsssocket.o 		\
		tssdev.o 		\
		tsstransmit.o 		\
		tssresponsecode.o 	\
		fail.o			\
		tssprint.o		\
		Unmarshal.o 		\
		Commands.o 		\
		CommandCodeAttributes.o \
		CpriHash.o		\
		CpriSym.o

