blob: b9ec3ad74206f39fd3ae994edbaacf30157209be [file] [log] [blame]
Tom Cosgrovee2f0e302024-05-29 12:36:09 +01001MAIN ?= src/client.c
Tom Cosgrove3ebb8802024-05-29 10:29:39 +01002
Valerio Setti4362aae2024-05-09 09:15:39 +02003CFLAGS += -Wall -Werror -std=c99 -D_XOPEN_SOURCE=1 -D_POSIX_C_SOURCE=200809L
Valerio Setti4f4ade92024-05-03 17:28:04 +02004
5ifeq ($(DEBUG),1)
Valerio Settic98f8ab2024-05-10 15:53:40 +02006CFLAGS += -DDEBUG -O0 -g
Valerio Setti4f4ade92024-05-03 17:28:04 +02007endif
8
Valerio Setticd89c1f2024-05-10 11:21:04 +02009LIBPSACLIENT := -Llibpsaclient/ -lmbedcrypto -lmbedx509 -lmbedtls
10LIBPSASERVER := -Llibpsaserver/ -lmbedcrypto
Valerio Setti4f4ade92024-05-03 17:28:04 +020011
Valerio Setticd89c1f2024-05-10 11:21:04 +020012MBEDTLS_ROOT_PATH = ../../..
13COMMON_INCLUDE := -I./include -I$(MBEDTLS_ROOT_PATH)/include
Valerio Setti66fb1c12024-05-10 06:51:16 +020014
15TEST_BIN = test/psa_client \
16 test/psa_partition
17
18GENERATED_H_FILES = include/psa_manifest/manifest.h \
19 include/psa_manifest/pid.h \
20 include/psa_manifest/sid.h
21
22PSA_CLIENT_SRC = src/psa_ff_client.c \
Tom Cosgrovee2f0e302024-05-29 12:36:09 +010023 $(MAIN) \
Tom Cosgrove3ebb8802024-05-29 10:29:39 +010024 src/psa_sim_crypto_client.c \
25 src/psa_sim_serialise.c
Valerio Setti66fb1c12024-05-10 06:51:16 +020026
Tom Cosgrovee7a22302024-06-10 13:43:41 +010027PSA_CLIENT_DEFS = -Isrc -DMBEDTLS_USER_CONFIG_FILE='"psa_sim_client_config_adjust.h"'
28
Valerio Setti66fb1c12024-05-10 06:51:16 +020029PARTITION_SERVER_BOOTSTRAP = src/psa_ff_bootstrap_TEST_PARTITION.c
30
31PSA_SERVER_SRC = $(PARTITION_SERVER_BOOTSTRAP) \
Tom Cosgrove3ebb8802024-05-29 10:29:39 +010032 src/psa_ff_server.c \
33 src/psa_sim_crypto_server.c \
34 src/psa_sim_serialise.c
Valerio Setti66fb1c12024-05-10 06:51:16 +020035
Valerio Setticd89c1f2024-05-10 11:21:04 +020036.PHONY: all clean libpsaclient libpsaserver
Valerio Setti66fb1c12024-05-10 06:51:16 +020037
38all: $(TEST_BIN)
39
Valerio Setti87d99fb2024-05-14 10:57:35 +020040test/seedfile:
41 dd if=/dev/urandom of=./test/seedfile bs=64 count=1
42
Valerio Setti66fb1c12024-05-10 06:51:16 +020043test/psa_client: $(PSA_CLIENT_SRC) $(GENERATED_H_FILES)
Tom Cosgrovee7a22302024-06-10 13:43:41 +010044 $(CC) $(COMMON_INCLUDE) $(CFLAGS) $(PSA_CLIENT_DEFS) $(PSA_CLIENT_SRC) $(LIBPSACLIENT) $(LDFLAGS) -o $@
Valerio Setti66fb1c12024-05-10 06:51:16 +020045
Valerio Setti87d99fb2024-05-14 10:57:35 +020046test/psa_partition: $(PSA_SERVER_SRC) $(GENERATED_H_FILES) test/seedfile
Valerio Setticd89c1f2024-05-10 11:21:04 +020047 $(CC) $(COMMON_INCLUDE) $(CFLAGS) $(PSA_SERVER_SRC) $(LIBPSASERVER) $(LDFLAGS) -o $@
Valerio Setti66fb1c12024-05-10 06:51:16 +020048
49$(PARTITION_SERVER_BOOTSTRAP) $(GENERATED_H_FILES): src/manifest.json src/server.c
50 tools/psa_autogen.py src/manifest.json
Valerio Setti4f4ade92024-05-03 17:28:04 +020051
Valerio Setticd89c1f2024-05-10 11:21:04 +020052# Build MbedTLS libraries (crypto, x509 and tls) and copy them locally to
53# build client/server applications.
54#
55# Note: these rules assume that mbedtls_config.h is already configured by all.sh.
56# If not using all.sh then the user must do it manually.
57libpsaclient libpsaserver:
58 $(MAKE) -C $(MBEDTLS_ROOT_PATH)/library CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" libmbedcrypto.a libmbedx509.a libmbedtls.a
59 mkdir -p $@
60 cp $(MBEDTLS_ROOT_PATH)/library/libmbed*.a $@/
61 $(MAKE) -C $(MBEDTLS_ROOT_PATH) clean
62
Valerio Setti4f4ade92024-05-03 17:28:04 +020063clean:
Valerio Setti66fb1c12024-05-10 06:51:16 +020064 rm -f $(TEST_BIN)
65 rm -f $(PARTITION_SERVER_BOOTSTRAP)
Valerio Setticd89c1f2024-05-10 11:21:04 +020066 rm -rf libpsaclient libpsaserver
Valerio Setti66fb1c12024-05-10 06:51:16 +020067 rm -rf include/psa_manifest
68 rm -f test/psa_service_* test/psa_notify_*
Valerio Setti1f3c99c2024-05-15 07:29:51 +020069 rm -f test/*.log
70 rm -f test/seedfile