blob: 7e2365b209cdd2252fd54607f424ce4c714e15f4 [file] [log] [blame]
Will Arthurca8e7f32015-08-03 15:35:19 -04001#;**********************************************************************;
2#
3# Copyright (c) 2015, Intel Corporation
4# All rights reserved.
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions are met:
8#
9# 1. Redistributions of source code must retain the above copyright notice,
10# this list of conditions and the following disclaimer.
11#
12# 2. Redistributions in binary form must reproduce the above copyright notice,
13# this list of conditions and the following disclaimer in the documentation
14# and/or other materials provided with the distribution.
15#
16# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
26# THE POSSIBILITY OF SUCH DAMAGE.
27#;**********************************************************************;
28
Philip Triccae690e082015-09-07 18:17:35 -070029include src_vars.mk
30
Philip Triccaa509a682015-09-14 15:34:52 -070031ACLOCAL_AMFLAGS = -I m4
Philip Triccadaeb5bb2016-05-26 19:27:45 -070032AM_CFLAGS = -I$(srcdir)/include
33AM_CXXFLAGS = $(AM_CFLAGS)
Philip Triccaa509a682015-09-14 15:34:52 -070034
Philip Tricca2bd4adb2015-09-25 00:14:16 -070035# stuff to build, what that stuff is, and where/if to install said stuff
36sbin_PROGRAMS = $(resourcemgr)
37noinst_PROGRAMS = $(tpmclient) $(tpmtest)
Philip Tricca826f5902016-05-26 16:44:31 -070038lib_LTLIBRARIES = $(libsapi) $(libtcti_device) $(libtcti_socket)
Philip Tricca4334dee2016-08-09 19:56:28 -070039
Philip Triccab194be92016-03-15 13:27:09 -070040# unit tests
Philip Tricca4334dee2016-08-09 19:56:28 -070041if UNIT
Philip Tricca4c1b4a02016-06-21 05:44:51 -070042check_PROGRAMS = \
43 test/tcti_device \
Philip Tricca6f634c42016-07-23 12:32:15 -070044 test/getcommands-malloc-mock_unit \
Philip Tricca364c0ce2016-07-23 16:48:37 -070045 test/CommonPreparePrologue_unit \
Philip Tricca7d839832016-08-14 09:54:31 -070046 test/GetNumHandles_unit \
Philip Triccaf1811f02016-08-28 11:02:31 -070047 test/CopyCommandHeader_unit \
Philip Tricca80d81bd2016-08-29 09:48:16 -070048 test/marshal-UINT16_unit \
49 test/marshal-UINT32_unit
Philip Tricca4334dee2016-08-09 19:56:28 -070050endif #UNIT
51
Philip Triccab194be92016-03-15 13:27:09 -070052TESTS = $(check_PROGRAMS)
Philip Tricca7ae01542016-05-05 18:45:03 -070053CLEANFILES = $(nodist_pkgconfig_DATA)
Philip Tricca7d3515f2015-09-07 10:06:56 -070054
Philip Tricca2bd4adb2015-09-25 00:14:16 -070055# headers and where to install them
Philip Triccad69337a2016-05-26 16:16:01 -070056libsapidir = $(includedir)/sapi
57libsapi_HEADERS = $(srcdir)/include/sapi/*.h
Philip Triccac3dedc22016-01-15 13:47:22 -080058libtctidir = $(includedir)/tcti
59libtcti_HEADERS = $(srcdir)/include/tcti/*.h
Philip Tricca7ae01542016-05-05 18:45:03 -070060# pkg-config files
61pkgconfigdir = $(libdir)/pkgconfig
Philip Tricca826f5902016-05-26 16:44:31 -070062nodist_pkgconfig_DATA = lib/sapi.pc lib/tcti-device.pc lib/tcti-socket.pc
Philip Tricca2bd4adb2015-09-25 00:14:16 -070063
Philip Tricca4334dee2016-08-09 19:56:28 -070064if UNIT
Philip Tricca1f3a1fd2016-08-14 11:48:45 -070065test_tcti_device_CFLAGS = $(CMOCKA_CFLAGS) -I$(srcdir)/include -I$(srcdir)/sysapi/include
Philip Tricca826f5902016-05-26 16:44:31 -070066test_tcti_device_LDADD = $(libsapi) $(libtcti_device) $(CMOCKA_LIBS)
Philip Triccab194be92016-03-15 13:27:09 -070067test_tcti_device_SOURCES = test/tcti_device.c test/tcti_device_test.c
68
Philip Tricca1f3a1fd2016-08-14 11:48:45 -070069test_getcommands_malloc_mock_unit_CFLAGS = $(CMOCKA_CFLAGS) -I$(srcdir)/include \
Philip Tricca4c1b4a02016-06-21 05:44:51 -070070 -I$(srcdir)/sysapi/include/
71test_getcommands_malloc_mock_unit_LDADD = $(CMOCKA_LIBS)
72test_getcommands_malloc_mock_unit_LDFLAGS = -Wl,--wrap=malloc \
73 -Wl,--wrap=Tss2_Sys_GetCapability
74test_getcommands_malloc_mock_unit_SOURCES = \
75 test/getcommands-malloc-mock_unit.c resourcemgr/getcommands.c
76
Philip Tricca1f3a1fd2016-08-14 11:48:45 -070077test_CommonPreparePrologue_unit_CFLAGS = $(CMOCKA_CFLAGS) -I$(srcdir)/include \
Philip Tricca6f634c42016-07-23 12:32:15 -070078 -I$(srcdir)/include/sapi -I$(srcdir)/sysapi/include/
79test_CommonPreparePrologue_unit_LDFLAGS = -Wl,--unresolved-symbols=ignore-all
80test_CommonPreparePrologue_unit_LDADD = $(CMOCKA_LIBS)
81test_CommonPreparePrologue_unit_SOURCES = \
Philip Tricca90363cd2016-07-23 15:22:37 -070082 test/CommonPreparePrologue_unit.c sysapi/sysapi_util/CommandUtil.c \
83 sysapi/sysapi/ContextManagement.c
Philip Tricca6f634c42016-07-23 12:32:15 -070084
Philip Tricca364c0ce2016-07-23 16:48:37 -070085test_GetNumHandles_unit_CFLAGS = $(CMOCKA_CFLAGS) \
86 -I$(srcdir)/include -I$(srcdir)/sysapi/include
87test_GetNumHandles_unit_LDADD = $(CMOCKA_LIBS)
88test_GetNumHandles_unit_SOURCES = \
89 test/GetNumHandles_unit.c sysapi/sysapi_util/GetNumHandles.c
Philip Tricca1f3a1fd2016-08-14 11:48:45 -070090
91test_CopyCommandHeader_unit_CFLAGS = $(CMOCKA_CFLAGS) -I$(srcdir)/include \
Philip Tricca81223f42016-07-28 19:50:08 -070092 -I$(srcdir)/include/sapi -I$(srcdir)/sysapi/include/
93test_CopyCommandHeader_unit_LDFLAGS = -Wl,--unresolved-symbols=ignore-all
94test_CopyCommandHeader_unit_LDADD = $(CMOCKA_LIBS)
95test_CopyCommandHeader_unit_SOURCES = \
96 test/CopyCommandHeader_unit.c sysapi/sysapi_util/CommandUtil.c \
97 sysapi/sysapi/ContextManagement.c sysapi/sysapi_util/changeEndian.c
Philip Triccaf1811f02016-08-28 11:02:31 -070098
99test_marshal_UINT16_unit_CFLAGS = $(CMOCKA_CFLAGS) \
100 -I$(srcdir)/include -I$(srcdir)/include/sapi -I$(srcdir)/sysapi/include/
101test_marshal_UINT16_unit_LDADD = $(CMOCKA_LIBS)
102test_marshal_UINT16_unit_SOURCES = \
103 sysapi/sysapi_util/changeEndian.c \
104 sysapi/sysapi_util/checkoverflow.c \
105 sysapi/sysapi_util/marshal_uint16.c \
106 test/marshal-UINT16_unit.c
Philip Tricca80d81bd2016-08-29 09:48:16 -0700107
108test_marshal_UINT32_unit_CFLAGS = $(CMOCKA_CFLAGS) \
109 -I$(srcdir)/include -I$(srcdir)/include/sapi -I$(srcdir)/sysapi/include/
110test_marshal_UINT32_unit_LDADD = $(CMOCKA_LIBS)
111test_marshal_UINT32_unit_SOURCES = \
112 sysapi/sysapi_util/changeEndian.c \
113 sysapi/sysapi_util/checkoverflow.c \
114 sysapi/sysapi_util/marshal_uint32.c \
115 test/marshal-UINT32_unit.c
Philip Tricca4334dee2016-08-09 19:56:28 -0700116endif # UNIT
Philip Tricca364c0ce2016-07-23 16:48:37 -0700117
Philip Tricca2bd4adb2015-09-25 00:14:16 -0700118# how to build stuff
Philip Triccafe6b8ae2016-04-22 14:17:10 -0700119resourcemgr_resourcemgr_CFLAGS = $(RESOURCEMGR_INC) $(PTHREAD_CFLAGS) $(AM_CFLAGS)
120resourcemgr_resourcemgr_CXXFLAGS = $(RESOURCEMGR_INC) $(PTHREAD_CFLAGS) $(AM_CXXFLAGS)
Philip Tricca826f5902016-05-26 16:44:31 -0700121resourcemgr_resourcemgr_LDADD = $(libsapi) $(libtcti_device) $(libtcti_socket)
Philip Tricca00692472015-09-16 13:09:54 -0700122resourcemgr_resourcemgr_LDFLAGS = $(PTHREAD_LDFLAGS)
Philip Tricca66f143a2016-04-17 00:09:06 -0700123resourcemgr_resourcemgr_SOURCES = $(RESOURCEMGR_C) $(COMMON_SRC)
Philip Tricca10d1aa22015-09-07 10:55:58 -0700124
Philip Triccad69337a2016-05-26 16:16:01 -0700125sysapi_libsapi_la_CFLAGS = -I$(srcdir)/sysapi/include $(AM_CFLAGS)
126sysapi_libsapi_la_LDFLAGS = $(LIBRARY_LDFLAGS)
127sysapi_libsapi_la_SOURCES = $(SYSAPI_C) $(SYSAPIUTIL_C)
Philip Tricca7d3515f2015-09-07 10:06:56 -0700128
Philip Tricca826f5902016-05-26 16:44:31 -0700129tcti_libtcti_device_la_CFLAGS = $(TCTIDEVICE_INC) $(AM_CFLAGS)
130tcti_libtcti_device_la_LDFLAGS = $(LIBRARY_LDFLAGS) \
Philip Tricca92fb8a72016-03-31 15:33:57 -0700131 -Wl,--version-script=$(srcdir)/tcti/tcti_device.map
Philip Tricca826f5902016-05-26 16:44:31 -0700132tcti_libtcti_device_la_SOURCES = $(TCTIDEVICE_C) \
Philip Tricca3d486352016-04-18 11:26:25 -0700133 sysapi/sysapi_util/changeEndian.c $(TCTICOMMON_C) common/debug.c
Philip Tricca97e869f2015-11-03 20:19:44 -0500134
Philip Triccab0927df2016-06-21 06:28:44 -0700135tcti_libtcti_socket_la_CFLAGS = $(TCTISOCKET_INC) $(AM_CFLAGS)
136tcti_libtcti_socket_la_CXXFLAGS = $(TCTISOCKET_INC) $(AM_CXXFLAGS)
Philip Tricca826f5902016-05-26 16:44:31 -0700137tcti_libtcti_socket_la_LDFLAGS = $(LIBRARY_LDFLAGS) \
Philip Tricca92fb8a72016-03-31 15:33:57 -0700138 -Wl,--version-script=$(srcdir)/tcti/tcti_socket.map
Philip Tricca826f5902016-05-26 16:44:31 -0700139tcti_libtcti_socket_la_SOURCES = $(TCTISOCKET_C) \
Philip Tricca98b285a2016-03-11 20:50:04 -0800140 sysapi/sysapi_util/changeEndian.c $(TCTISOCKET_CXX) $(TCTICOMMON_C) \
Philip Tricca4f2bdd72016-04-22 15:03:27 -0400141 common/sockets.cpp common/debug.c
Philip Triccaa51ca972015-11-04 00:13:42 -0500142
Philip Triccab0927df2016-06-21 06:28:44 -0700143test_tpmclient_tpmclient_CFLAGS = $(TPMCLIENT_INC) $(AM_CFLAGS)
144test_tpmclient_tpmclient_CXXFLAGS = $(TPMCLIENT_INC) $(TCTICOMMON_INC) $(TCTIDEVICE_INC) $(AM_CXXFLAGS)
Philip Tricca826f5902016-05-26 16:44:31 -0700145test_tpmclient_tpmclient_LDADD = $(libsapi) $(libtcti_socket) $(libtcti_device)
Philip Triccaa51ca972015-11-04 00:13:42 -0500146test_tpmclient_tpmclient_SOURCES = $(TPMCLIENT_CXX) $(COMMON_C) $(SAMPLE_C)
Philip Tricca38de2022015-09-07 11:46:28 -0700147
Philip Triccab0927df2016-06-21 06:28:44 -0700148test_tpmtest_tpmtest_CFLAGS = $(TPMTEST_INC) $(AM_CFLAGS)
149test_tpmtest_tpmtest_CXXFLAGS = $(TPMTEST_INC) $(AM_CXXFLAGS)
Philip Tricca826f5902016-05-26 16:44:31 -0700150test_tpmtest_tpmtest_LDADD = $(libsapi) $(libtcti_socket) $(libtcti_device)
Philip Triccaa51ca972015-11-04 00:13:42 -0500151test_tpmtest_tpmtest_SOURCES = $(TPMTEST_CXX) $(COMMON_C) $(SAMPLE_C)
Gang Weie9600692015-09-10 14:07:14 +0800152
Philip Tricca7ae01542016-05-05 18:45:03 -0700153%.pc : %.pc.in
Philip Triccafdce98d2016-05-23 15:47:16 -0700154 if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi
Philip Tricca7ae01542016-05-05 18:45:03 -0700155 sed -e "s,[@]VERSION[@],$(PACKAGE_VERSION),g; \
156 s,[@]includedir[@],$(includedir),g;" $^ > $@
157
Philip Triccab1a64062016-04-05 15:26:47 -0700158LIBRARY_LDFLAGS = -fPIC -Wl,--no-undefined
Philip Tricca125bb322016-03-31 16:11:51 -0700159
Philip Tricca2bd4adb2015-09-25 00:14:16 -0700160# simple variables
Philip Triccac3dedc22016-01-15 13:47:22 -0800161RESOURCEMGR_INC = -I$(srcdir)/include -I$(srcdir)/common \
Philip Tricca785e88d2016-02-13 12:02:44 -0800162 -I$(srcdir)/sysapi/include -I$(srcdir)/resourcemgr \
163 -I$(srcdir)/test/tpmclient
Philip Tricca4c1b4a02016-06-21 05:44:51 -0700164RESOURCEMGR_C = resourcemgr/resourcemgr.c resourcemgr/criticalsection_linux.c \
165 resourcemgr/getcommands.c
Philip Tricca10d1aa22015-09-07 10:55:58 -0700166
Philip Tricca785e88d2016-02-13 12:02:44 -0800167TCTICOMMON_INC = -I$(srcdir)/include -I$(srcdir)/common \
168 -I$(srcdir)/sysapi/include
169TCTICOMMON_C = tcti/commonchecks.c
Will-nuc8d4f9672015-11-25 16:48:20 -0500170
Philip Tricca785e88d2016-02-13 12:02:44 -0800171TCTIDEVICE_INC = $(TCTICOMMON_INC)
172TCTIDEVICE_C = tcti/tcti_device.c
Will-nucf2ea1f12015-11-25 16:29:57 -0500173
Philip Tricca785e88d2016-02-13 12:02:44 -0800174TCTISOCKET_INC = $(TCTICOMMON_INC)
175TCTISOCKET_C = tcti/platformcommand.c
176TCTISOCKET_CXX = tcti/tcti_socket.cpp
Philip Tricca97e869f2015-11-03 20:19:44 -0500177
Philip Triccac3dedc22016-01-15 13:47:22 -0800178TPMCLIENT_INC = -I$(srcdir)/include -I$(srcdir)/sysapi/include \
Philip Tricca2bd4adb2015-09-25 00:14:16 -0700179 -I$(srcdir)/test/tpmclient -I$(srcdir)/common \
Philip Triccae2c16792016-01-05 12:07:22 -0800180 -I$(srcdir)/test/common/sample -I$(srcdir)/resourcemgr
Philip Tricca2bd4adb2015-09-25 00:14:16 -0700181TPMCLIENT_CXX = test/tpmclient/tpmclient.cpp
Philip Triccae690e082015-09-07 18:17:35 -0700182
Philip Triccac3dedc22016-01-15 13:47:22 -0800183TPMTEST_INC = -I$(srcdir)/include -I$(srcdir)/sysapi/include \
Philip Tricca2bd4adb2015-09-25 00:14:16 -0700184 -I$(srcdir)/test/tpmclient -I$(srcdir)/common \
Gang Weie9600692015-09-10 14:07:14 +0800185 -I$(srcdir)/test/common/sample -I$(srcdir)/resourcemgr
Philip Tricca2bd4adb2015-09-25 00:14:16 -0700186TPMTEST_CXX = test/tpmtest/tpmtest.cpp
187
Philip Triccad69337a2016-05-26 16:16:01 -0700188libsapi = sysapi/libsapi.la
Philip Tricca826f5902016-05-26 16:44:31 -0700189libtcti_device = tcti/libtcti-device.la
190libtcti_socket = tcti/libtcti-socket.la
Philip Tricca2bd4adb2015-09-25 00:14:16 -0700191resourcemgr = resourcemgr/resourcemgr
192tpmclient = test/tpmclient/tpmclient
193tpmtest = test/tpmtest/tpmtest