blob: 3b9b50df83a3de7b80342fed261f2167004fe534 [file] [log] [blame]
Ronald Cron8dc0af22020-06-05 16:00:22 +02001MBEDTLS_TEST_PATH:=../../tests/src
Steven Cooremana70d5882020-07-16 20:26:18 +02002MBEDTLS_TEST_OBJS:=$(patsubst %.c,%.o,$(wildcard ${MBEDTLS_TEST_PATH}/*.c ${MBEDTLS_TEST_PATH}/drivers/*.c))
Philippe Antoine03e87d92019-06-04 19:37:52 +02003
Gilles Peskine9ec14f62022-11-29 17:23:19 +01004CFLAGS ?= -O2
5WARNING_CFLAGS ?= -Wall -Wextra
6LOCAL_CFLAGS = $(WARNING_CFLAGS) -I../../tests/include -I../../include -D_FILE_OFFSET_BITS=64
Ronald Cron8dc0af22020-06-05 16:00:22 +02007LOCAL_LDFLAGS = ${MBEDTLS_TEST_OBJS} \
8 -L../../library \
Philippe Antoine03e87d92019-06-04 19:37:52 +02009 -lmbedtls$(SHARED_SUFFIX) \
10 -lmbedx509$(SHARED_SUFFIX) \
11 -lmbedcrypto$(SHARED_SUFFIX)
12
Gilles Peskineaae57bf2020-03-09 17:30:32 +010013LOCAL_CFLAGS += $(patsubst -I../%,-I../../%,$(THIRDPARTY_INCLUDES))
Philippe Antoine03e87d92019-06-04 19:37:52 +020014
15ifndef SHARED
Gilles Peskineaae57bf2020-03-09 17:30:32 +010016DEP=../../library/libmbedcrypto.a ../../library/libmbedx509.a ../../library/libmbedtls.a
Philippe Antoine03e87d92019-06-04 19:37:52 +020017else
Gilles Peskineaae57bf2020-03-09 17:30:32 +010018DEP=../../library/libmbedcrypto.$(DLEXT) ../../library/libmbedx509.$(DLEXT) ../../library/libmbedtls.$(DLEXT)
Philippe Antoine03e87d92019-06-04 19:37:52 +020019endif
20
21
22DLEXT ?= so
23EXEXT=
24SHARED_SUFFIX=
Philippe Antoine03e87d92019-06-04 19:37:52 +020025
Philippe Antoine03e87d92019-06-04 19:37:52 +020026ifdef FUZZINGENGINE
27LOCAL_LDFLAGS += -lFuzzingEngine
28endif
29
Minos Galanakise13775d2023-08-11 14:36:33 +010030ifdef WINDOWS_BUILD
31LOCAL_LDFLAGS += -lbcrypt
Paul Elliott4068c7e2023-12-15 17:14:34 +000032else
33ifeq ($(THREADING),pthread)
34LOCAL_LDFLAGS += -lpthread
35endif
Minos Galanakise13775d2023-08-11 14:36:33 +010036endif
37
Philippe Antoine03e87d92019-06-04 19:37:52 +020038# A test application is built for each suites/test_suite_*.data file.
39# Application name is same as .data file's base name and can be
40# constructed by stripping path 'suites/' and extension .data.
41APPS = $(basename $(wildcard fuzz_*.c))
42
43# Construct executable name by adding OS specific suffix $(EXEXT).
44BINARIES := $(addsuffix $(EXEXT),$(APPS))
45
46.SILENT:
47
48.PHONY: all check test clean
49
50all: $(BINARIES)
51
52$(DEP):
53 $(MAKE) -C ../../library
54
55C_FILES := $(addsuffix .c,$(APPS))
56
57%.o: %.c
58 $(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c $< -o $@
59
60
61ifdef FUZZINGENGINE
62$(BINARIES): %$(EXEXT): %.o common.o $(DEP)
63 echo " $(CC) common.o $< $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@"
64 $(CXX) common.o $< $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
65else
66$(BINARIES): %$(EXEXT): %.o common.o onefile.o $(DEP)
67 echo " $(CC) common.o onefile.o $< $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@"
68 $(CC) common.o onefile.o $< $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
69endif
70
71clean:
72ifndef WINDOWS
73 rm -rf $(BINARIES) *.o
74else
Darryl Green9b9a7902019-08-30 14:51:55 +010075 if exist *.o del /Q /F *.o
76 if exist *.exe del /Q /F *.exe
Philippe Antoine03e87d92019-06-04 19:37:52 +020077endif