blob: ec6691f4224c1f0ed66b5a9e8a8da24897cfcc79 [file] [log] [blame]
Valerio Setti4362aae2024-05-09 09:15:39 +02001CFLAGS += -Wall -Werror -std=c99 -D_XOPEN_SOURCE=1 -D_POSIX_C_SOURCE=200809L
Valerio Setti4f4ade92024-05-03 17:28:04 +02002
3ifeq ($(DEBUG),1)
Valerio Setti09172652024-06-27 08:00:54 +02004override CFLAGS += -DDEBUG -O0 -g
Valerio Setti4f4ade92024-05-03 17:28:04 +02005endif
6
Valerio Setti09172652024-06-27 08:00:54 +02007CLIENT_LIBS := -Lclient_libs -lpsaclient -lmbedtls -lmbedx509 -lmbedcrypto
8SERVER_LIBS := -Lserver_libs -lmbedcrypto
Valerio Setti4f4ade92024-05-03 17:28:04 +02009
Valerio Setticd89c1f2024-05-10 11:21:04 +020010MBEDTLS_ROOT_PATH = ../../..
Ronald Cron3d817ad2024-06-14 08:43:28 +020011COMMON_INCLUDE := -I./include -I$(MBEDTLS_ROOT_PATH)/include \
12 -I$(MBEDTLS_ROOT_PATH)/tf-psa-crypto/include \
13 -I$(MBEDTLS_ROOT_PATH)/tf-psa-crypto/drivers/builtin/include
Valerio Setti66fb1c12024-05-10 06:51:16 +020014
Valerio Setti66fb1c12024-05-10 06:51:16 +020015GENERATED_H_FILES = include/psa_manifest/manifest.h \
16 include/psa_manifest/pid.h \
17 include/psa_manifest/sid.h
18
Valerio Setti09172652024-06-27 08:00:54 +020019LIBPSACLIENT_SRC = src/psa_ff_client.c \
20 src/psa_sim_crypto_client.c \
21 src/psa_sim_serialise.c
22LIBPSACLIENT_OBJS=$(LIBPSACLIENT_SRC:.c=.o)
Valerio Setti66fb1c12024-05-10 06:51:16 +020023
Valerio Setti09172652024-06-27 08:00:54 +020024PSA_CLIENT_BASE_SRC = $(LIBPSACLIENT_SRC) src/client.c
Valerio Setti5beb2362024-06-24 13:13:17 +020025
Valerio Setti09172652024-06-27 08:00:54 +020026PSA_CLIENT_FULL_SRC = $(LIBPSACLIENT_SRC) \
Valerio Setti5beb2362024-06-24 13:13:17 +020027 $(wildcard src/aut_*.c)
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 Setti09172652024-06-27 08:00:54 +020036.PHONY: all clean client_libs server_libs
Valerio Setti66fb1c12024-05-10 06:51:16 +020037
Valerio Settif98635c2024-06-10 20:13:13 +020038all:
Valerio Setti66fb1c12024-05-10 06:51:16 +020039
Valerio Setti87d99fb2024-05-14 10:57:35 +020040test/seedfile:
41 dd if=/dev/urandom of=./test/seedfile bs=64 count=1
42
Valerio Setti09172652024-06-27 08:00:54 +020043src/%.o: src/%.c $(GENERATED_H_FILES)
44 $(CC) $(COMMON_INCLUDE) $(CFLAGS) -c $< $(LDFLAGS) -o $@
Valerio Setti5beb2362024-06-24 13:13:17 +020045
Valerio Setti09172652024-06-27 08:00:54 +020046client_libs/libpsaclient: $(LIBPSACLIENT_OBJS)
47 mkdir -p client_libs
48 $(AR) -src client_libs/libpsaclient.a $(LIBPSACLIENT_OBJS)
Valerio Setti66fb1c12024-05-10 06:51:16 +020049
Valerio Setti09172652024-06-27 08:00:54 +020050test/psa_client_base: $(PSA_CLIENT_BASE_SRC) $(GENERATED_H_FILES) test/seedfile
51 $(CC) $(COMMON_INCLUDE) $(CFLAGS) $(PSA_CLIENT_BASE_SRC) $(CLIENT_LIBS) $(LDFLAGS) -o $@
52
53test/psa_client_full: $(PSA_CLIENT_FULL_SRC) $(GENERATED_H_FILES) test/seedfile
54 $(CC) $(COMMON_INCLUDE) $(CFLAGS) $(PSA_CLIENT_FULL_SRC) $(CLIENT_LIBS) $(LDFLAGS) -o $@
55
56test/psa_server: $(PSA_SERVER_SRC) $(GENERATED_H_FILES)
57 $(CC) $(COMMON_INCLUDE) $(CFLAGS) $(PSA_SERVER_SRC) $(SERVER_LIBS) $(LDFLAGS) -o $@
Valerio Setti66fb1c12024-05-10 06:51:16 +020058
59$(PARTITION_SERVER_BOOTSTRAP) $(GENERATED_H_FILES): src/manifest.json src/server.c
60 tools/psa_autogen.py src/manifest.json
Valerio Setti4f4ade92024-05-03 17:28:04 +020061
Valerio Setticd89c1f2024-05-10 11:21:04 +020062# Build MbedTLS libraries (crypto, x509 and tls) and copy them locally to
63# build client/server applications.
64#
65# Note: these rules assume that mbedtls_config.h is already configured by all.sh.
66# If not using all.sh then the user must do it manually.
Valerio Setti09172652024-06-27 08:00:54 +020067client_libs: client_libs/libpsaclient
68client_libs server_libs:
Valerio Setticd89c1f2024-05-10 11:21:04 +020069 $(MAKE) -C $(MBEDTLS_ROOT_PATH)/library CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" libmbedcrypto.a libmbedx509.a libmbedtls.a
70 mkdir -p $@
71 cp $(MBEDTLS_ROOT_PATH)/library/libmbed*.a $@/
Valerio Setticd89c1f2024-05-10 11:21:04 +020072
Valerio Setti09172652024-06-27 08:00:54 +020073clean_server_intermediate_files:
Valerio Setti66fb1c12024-05-10 06:51:16 +020074 rm -f $(PARTITION_SERVER_BOOTSTRAP)
75 rm -rf include/psa_manifest
Valerio Setti09172652024-06-27 08:00:54 +020076
77clean: clean_server_intermediate_files
78 rm -f test/psa_client_base test/psa_client_full test/psa_server
79 rm -rf client_libs server_libs
80 rm -f test/psa_service_* test/psa_notify_* test/*.log
Valerio Setti1f3c99c2024-05-15 07:29:51 +020081 rm -f test/seedfile