blob: 32dd87664800424703f123279e02c15832c62c44 [file] [log] [blame]
#################################################################################
# #
# Linux TPM2 Utilities Makefile for minimal TSS #
# Written by Ken Goldman #
# IBM Thomas J. Watson Research Center #
# #
# (c) Copyright IBM Corporation 2016 - 2019 #
# #
# 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. #
# #
#################################################################################
# makefile to build a TSS library that does not require file read/write or crypto
# within the library
#
# See the documentation for limitations.
# C compiler
CC = /usr/bin/gcc
# compile - common flags for TSS library and applications
CCFLAGS += \
-DTPM_POSIX \
-DTPM_TSS_NOFILE \
-DTPM_TSS_NOCRYPTO \
-DTPM_TSS_NORSA
# -DTPM_NOSOCKET
# compile - for TSS library
CCLFLAGS += -I. \
-fPIC \
-DTPM_TPM20
# compile - for applications
CCAFLAGS += -I. \
-DTPM_TPM20 \
-fPIE
# link - common flags flags TSS library and applications
LNFLAGS += -DTPM_POSIX \
-L.
# link - for TSS library
# link - for applications, TSS path, TSS and OpenSSl libraries
LNAFLAGS += -Wl,-rpath,.
LNALIBS += -libmtssmin
# shared library
LIBTSS=libibmtssmin.so
#
ALL = $(LIBTSS)
#TSS_HEADERS = ibmtss/tssfile.h
# default TSS library
TSS_OBJS = tssprintcmd.o
# common to all builds
include makefile-common
include makefile-common20
# default build target
all: writeapp
# TSS shared library source
tss.o: $(TSS_HEADERS) tss.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC tss.c
tssproperties.o: $(TSS_HEADERS) tssproperties.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC tssproperties.c
tssauth.o: $(TSS_HEADERS) tssauth.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC tssauth.c
tssmarshal.o: $(TSS_HEADERS) tssmarshal.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC tssmarshal.c
tsscryptoh.o: $(TSS_HEADERS) tsscryptoh.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC tsscryptoh.c
tsscrypto.o: $(TSS_HEADERS) tsscrypto.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC tsscrypto.c
tssutils.o: $(TSS_HEADERS) tssutils.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC tssutils.c
tsssocket.o: $(TSS_HEADERS) tsssocket.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC tsssocket.c
tssdev.o: $(TSS_HEADERS) tssdev.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC tssdev.c
tsstransmit.o: $(TSS_HEADERS) tsstransmit.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC tsstransmit.c
tssresponsecode.o: $(TSS_HEADERS) tssresponsecode.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC tssresponsecode.c
tssccattributes.o: $(TSS_HEADERS) tssccattributes.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC tssccattributes.c
tssprint.o: $(TSS_HEADERS) tssprint.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC tssprint.c
tssprintcmd.o: $(TSS_HEADERS) tssprintcmd.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC tssprintcmd.c
Unmarshal.o: $(TSS_HEADERS) Unmarshal.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC Unmarshal.c
Commands.o: $(TSS_HEADERS) Commands.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC Commands.c
CommandAttributeData.o: $(TSS_HEADERS) CommandAttributeData.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC CommandAttributeData.c
ntc2lib.o: $(TSS_HEADERS) ntc2lib.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC ntc2lib.c
tssntc.o: $(TSS_HEADERS) tssntc.c
$(CC) $(CCFLAGS) $(CCLFLAGS) -fPIC tssntc.c
# TPM 2.0
tss20.o: $(TSS_HEADERS) tss20.c
$(CC) $(CCFLAGS) $(CCLFLAGS) tss20.c
tssauth20.o: $(TSS_HEADERS) tssauth20.c
$(CC) $(CCFLAGS) $(CCLFLAGS) tssauth20.c
# TSS shared library build
$(LIBTSS): $(TSS_OBJS)
$(CC) $(LNFLAGS) $(LNLFLAGS) -shared -o $(LIBTSS) $(TSS_OBJS)
.PHONY: clean
.PRECIOUS: %.o
clean:
rm -f *.o \
$(ALL)
# applications
writeapp: ibmtss/tss.h writeapp.o tssutilsverbose.o $(LIBTSS)
$(CC) $(LNFLAGS) $(LNAFLAGS) writeapp.o tssutilsverbose.o \
$(LNALIBS) -o writeapp
# for applications, not for TSS library
%.o: %.c ibmtss/tss.h
$(CC) $(CCFLAGS) $(CCAFLAGS) $< -o $@