################################################################################# # # # 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 $@