xref: /aosp_15_r20/external/webp/tests/fuzzer/makefile.unix (revision b2055c353e87c8814eb2b6b1b11112a1562253bd)
1*b2055c35SXin Li# This Makefile will compile all fuzzing targets. It doesn't check tool
2*b2055c35SXin Li# requirements and paths may need to be updated depending on your environment.
3*b2055c35SXin Li# Note a clang 6+ toolchain is assumed for use of -fsanitize=fuzzer.
4*b2055c35SXin Li
5*b2055c35SXin LiCC = clang
6*b2055c35SXin LiCXX = clang++
7*b2055c35SXin LiCFLAGS = -fsanitize=fuzzer -I../../src -I../.. -Wall -Wextra
8*b2055c35SXin LiCXXFLAGS = $(CFLAGS)
9*b2055c35SXin LiLDFLAGS = -fsanitize=fuzzer
10*b2055c35SXin LiLDLIBS = ../../src/mux/libwebpmux.a ../../src/demux/libwebpdemux.a
11*b2055c35SXin LiLDLIBS += ../../src/libwebp.a ../../imageio/libimageio_util.a
12*b2055c35SXin LiLDLIBS += ../../sharpyuv/libsharpyuv.a
13*b2055c35SXin Li
14*b2055c35SXin LiFUZZERS = advanced_api_fuzzer animation_api_fuzzer animdecoder_fuzzer
15*b2055c35SXin LiFUZZERS += animencoder_fuzzer enc_dec_fuzzer huffman_fuzzer
16*b2055c35SXin LiFUZZERS += mux_demux_api_fuzzer simple_api_fuzzer
17*b2055c35SXin Li
18*b2055c35SXin Li%.o: fuzz_utils.h img_alpha.h img_grid.h img_peak.h
19*b2055c35SXin Liall: $(FUZZERS)
20*b2055c35SXin Li
21*b2055c35SXin Lidefine FUZZER_template
22*b2055c35SXin Li$(1): $$(addsuffix .o, $(1)) $(LDLIBS)
23*b2055c35SXin LiOBJS += $$(addsuffix .o, $(1))
24*b2055c35SXin Liendef
25*b2055c35SXin Li
26*b2055c35SXin Li$(foreach fuzzer, $(FUZZERS), $(eval $(call FUZZER_template, $(fuzzer))))
27*b2055c35SXin Li
28*b2055c35SXin Liclean:
29*b2055c35SXin Li	$(RM) $(FUZZERS) $(OBJS)
30*b2055c35SXin Li
31*b2055c35SXin Li.PHONY: all clean
32