1MBEDTLS_TEST_PATH:=../../tests
2
3MBEDTLS_PATH := ../..
4include ../../scripts/common.make
5
6PROGRAM_FUZZ_PATH:=$(MBEDTLS_PATH)/tf-psa-crypto/programs/fuzz
7
8DEP=${MBEDLIBS}
9
10ifdef FUZZINGENGINE
11LOCAL_LDFLAGS += -lFuzzingEngine
12endif
13
14LOCAL_CFLAGS += -I$(PROGRAM_FUZZ_PATH)
15
16# A test application is built for each fuzz_*.c file.
17APPS = $(basename $(wildcard fuzz_*.c))
18APPS += $(basename $(PROGRAM_FUZZ_PATH)/fuzz_privkey.c)
19APPS += $(basename $(PROGRAM_FUZZ_PATH)/fuzz_pubkey.c)
20
21# Construct executable name by adding OS specific suffix $(EXEXT).
22BINARIES := $(addsuffix $(EXEXT),$(APPS))
23
24.SILENT:
25
26.PHONY: all check test clean
27
28all: $(BINARIES)
29
30C_FILES := $(addsuffix .c,$(APPS))
31
32%.o: %.c
33	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c $<	-o $@
34
35
36ifdef FUZZINGENGINE
37$(BINARIES): %$(EXEXT): %.o $(PROGRAM_FUZZ_PATH)/fuzz_common.o $(DEP)
38	echo " $(CC) $(PROGRAM_FUZZ_PATH)/fuzz_common.o $< $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@"
39	$(CXX) $(PROGRAM_FUZZ_PATH)/fuzz_common.o $<	$(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
40else
41$(BINARIES): %$(EXEXT): %.o $(PROGRAM_FUZZ_PATH)/fuzz_common.o $(PROGRAM_FUZZ_PATH)/fuzz_onefile.o $(DEP)
42	echo " $(CC) $(PROGRAM_FUZZ_PATH)/fuzz_common.o $(PROGRAM_FUZZ_PATH)/fuzz_onefile.o $< $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@"
43	$(CC) $(PROGRAM_FUZZ_PATH)/fuzz_common.o $(PROGRAM_FUZZ_PATH)/fuzz_onefile.o $<	$(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
44endif
45
46clean:
47ifndef WINDOWS
48	rm -rf $(BINARIES) *.o
49	rm -rf $(MBEDTLS_PATH)/tf-psa-crypto/programs/fuzz/*.o
50else
51	if exist *.o del /Q /F *.o
52	if exist *.exe del /Q /F *.exe
53	if exist $(MBEDTLS_PATH)\tf-psa-crypto\programs\fuzz\*.o del /Q /F $(MBEDTLS_PATH)\tf-psa-crypto\programs\fuzz\*.o
54endif
55