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