xref: /aosp_15_r20/external/mbedtls/programs/fuzz/Makefile (revision 62c56f9862f102b96d72393aff6076c951fb8148)
1MBEDTLS_TEST_PATH:=../../tests/src
2MBEDTLS_TEST_OBJS:=$(patsubst %.c,%.o,$(wildcard ${MBEDTLS_TEST_PATH}/*.c ${MBEDTLS_TEST_PATH}/drivers/*.c))
3
4CFLAGS ?= -O2
5WARNING_CFLAGS ?= -Wall -Wextra
6LOCAL_CFLAGS = $(WARNING_CFLAGS) -I../../tests/include -I../../include -D_FILE_OFFSET_BITS=64
7LOCAL_LDFLAGS = ${MBEDTLS_TEST_OBJS}		\
8		-L../../library			\
9		-lmbedtls$(SHARED_SUFFIX)	\
10		-lmbedx509$(SHARED_SUFFIX)	\
11		-lmbedcrypto$(SHARED_SUFFIX)
12
13LOCAL_CFLAGS += $(patsubst -I../%,-I../../%,$(THIRDPARTY_INCLUDES))
14
15ifndef SHARED
16DEP=../../library/libmbedcrypto.a ../../library/libmbedx509.a ../../library/libmbedtls.a
17else
18DEP=../../library/libmbedcrypto.$(DLEXT) ../../library/libmbedx509.$(DLEXT) ../../library/libmbedtls.$(DLEXT)
19endif
20
21
22DLEXT ?= so
23EXEXT=
24SHARED_SUFFIX=
25
26ifdef FUZZINGENGINE
27LOCAL_LDFLAGS += -lFuzzingEngine
28endif
29
30ifdef WINDOWS_BUILD
31LOCAL_LDFLAGS += -lbcrypt
32endif
33
34# A test application is built for each suites/test_suite_*.data file.
35# Application name is same as .data file's base name and can be
36# constructed by stripping path 'suites/' and extension .data.
37APPS = $(basename $(wildcard fuzz_*.c))
38
39# Construct executable name by adding OS specific suffix $(EXEXT).
40BINARIES := $(addsuffix $(EXEXT),$(APPS))
41
42.SILENT:
43
44.PHONY: all check test clean
45
46all: $(BINARIES)
47
48$(DEP):
49	$(MAKE) -C ../../library
50
51C_FILES := $(addsuffix .c,$(APPS))
52
53%.o: %.c
54	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c $<	-o $@
55
56
57ifdef FUZZINGENGINE
58$(BINARIES): %$(EXEXT): %.o common.o $(DEP)
59	echo " $(CC) common.o $< $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@"
60	$(CXX) common.o $<	$(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
61else
62$(BINARIES): %$(EXEXT): %.o common.o onefile.o $(DEP)
63	echo " $(CC) common.o onefile.o $< $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@"
64	$(CC) common.o onefile.o $<	$(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
65endif
66
67clean:
68ifndef WINDOWS
69	rm -rf $(BINARIES) *.o
70else
71	if exist *.o del /Q /F *.o
72	if exist *.exe del /Q /F *.exe
73endif
74