blob: 583f1b9b70f0f3d694efa40a9cd42549a8065471 [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 Setti66fb1c12024-05-10 06:51:16 +02004 CFLAGS += -DDEBUG
Valerio Setti4f4ade92024-05-03 17:28:04 +02005endif
6
Valerio Setticd89c1f2024-05-10 11:21:04 +02007LIBPSACLIENT := -Llibpsaclient/ -lmbedcrypto -lmbedx509 -lmbedtls
8LIBPSASERVER := -Llibpsaserver/ -lmbedcrypto
Valerio Setti4f4ade92024-05-03 17:28:04 +02009
Valerio Setticd89c1f2024-05-10 11:21:04 +020010MBEDTLS_ROOT_PATH = ../../..
11COMMON_INCLUDE := -I./include -I$(MBEDTLS_ROOT_PATH)/include
Valerio Setti66fb1c12024-05-10 06:51:16 +020012
13TEST_BIN = test/psa_client \
14 test/psa_partition
15
16GENERATED_H_FILES = include/psa_manifest/manifest.h \
17 include/psa_manifest/pid.h \
18 include/psa_manifest/sid.h
19
20PSA_CLIENT_SRC = src/psa_ff_client.c \
21 src/client.c
22
23PARTITION_SERVER_BOOTSTRAP = src/psa_ff_bootstrap_TEST_PARTITION.c
24
25PSA_SERVER_SRC = $(PARTITION_SERVER_BOOTSTRAP) \
26 src/psa_ff_server.c
27
Valerio Setticd89c1f2024-05-10 11:21:04 +020028.PHONY: all clean libpsaclient libpsaserver
Valerio Setti66fb1c12024-05-10 06:51:16 +020029
30all: $(TEST_BIN)
31
32test/psa_client: $(PSA_CLIENT_SRC) $(GENERATED_H_FILES)
Valerio Setticd89c1f2024-05-10 11:21:04 +020033 $(CC) $(COMMON_INCLUDE) $(CFLAGS) $(PSA_CLIENT_SRC) $(LIBPSACLIENT) $(LDFLAGS) -o $@
Valerio Setti66fb1c12024-05-10 06:51:16 +020034
35test/psa_partition: $(PSA_SERVER_SRC) $(GENERATED_H_FILES)
Valerio Setticd89c1f2024-05-10 11:21:04 +020036 $(CC) $(COMMON_INCLUDE) $(CFLAGS) $(PSA_SERVER_SRC) $(LIBPSASERVER) $(LDFLAGS) -o $@
Valerio Setti66fb1c12024-05-10 06:51:16 +020037
38$(PARTITION_SERVER_BOOTSTRAP) $(GENERATED_H_FILES): src/manifest.json src/server.c
39 tools/psa_autogen.py src/manifest.json
Valerio Setti4f4ade92024-05-03 17:28:04 +020040
Valerio Setticd89c1f2024-05-10 11:21:04 +020041# Build MbedTLS libraries (crypto, x509 and tls) and copy them locally to
42# build client/server applications.
43#
44# Note: these rules assume that mbedtls_config.h is already configured by all.sh.
45# If not using all.sh then the user must do it manually.
46libpsaclient libpsaserver:
47 $(MAKE) -C $(MBEDTLS_ROOT_PATH)/library CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" libmbedcrypto.a libmbedx509.a libmbedtls.a
48 mkdir -p $@
49 cp $(MBEDTLS_ROOT_PATH)/library/libmbed*.a $@/
50 $(MAKE) -C $(MBEDTLS_ROOT_PATH) clean
51
Valerio Setti4f4ade92024-05-03 17:28:04 +020052clean:
Valerio Setti66fb1c12024-05-10 06:51:16 +020053 rm -f $(TEST_BIN)
54 rm -f $(PARTITION_SERVER_BOOTSTRAP)
Valerio Setticd89c1f2024-05-10 11:21:04 +020055 rm -rf libpsaclient libpsaserver
Valerio Setti66fb1c12024-05-10 06:51:16 +020056 rm -rf include/psa_manifest
57 rm -f test/psa_service_* test/psa_notify_*
Valerio Setti237a64e2024-05-10 12:32:10 +020058 rm -r test/*.log
Valerio Setti4f4ade92024-05-03 17:28:04 +020059