comparison Makefile.in @ 1756:d5680e12ac33

Move fuzzing code to fuzz/ subdirectory, improve Makefile.in
author Matt Johnston <matt@ucc.asn.au>
date Fri, 23 Oct 2020 23:10:20 +0800
parents 7cb8bc5ce8b9
children 2406a9987810
comparison
equal deleted inserted replaced
1753:7c0fcd19e492 1756:d5680e12ac33
60 CONVERTOBJS=dropbearconvert.o keyimport.o 60 CONVERTOBJS=dropbearconvert.o keyimport.o
61 61
62 SCPOBJS=scp.o progressmeter.o atomicio.o scpmisc.o compat.o 62 SCPOBJS=scp.o progressmeter.o atomicio.o scpmisc.o compat.o
63 63
64 ifeq (@DROPBEAR_FUZZ@, 1) 64 ifeq (@DROPBEAR_FUZZ@, 1)
65 allobjs = $(COMMONOBJS) fuzz-common.o fuzz-wrapfd.o $(CLISVROBJS) $(CLIOBJS) $(SVROBJS) @CRYPTLIB@ 65 allobjs = $(COMMONOBJS) fuzz/fuzz-common.o fuzz/fuzz-wrapfd.o $(CLISVROBJS) $(CLIOBJS) $(SVROBJS) @CRYPTLIB@
66 allobjs:=$(subst svr-main.o, ,$(allobjs)) 66 allobjs:=$(subst svr-main.o, ,$(allobjs))
67 allobjs:=$(subst cli-main.o, ,$(allobjs)) 67 allobjs:=$(subst cli-main.o, ,$(allobjs))
68 68
69 dropbearobjs=$(allobjs) svr-main.o 69 dropbearobjs=$(allobjs) svr-main.o
70 dbclientobjs=$(allobjs) cli-main.o 70 dbclientobjs=$(allobjs) cli-main.o
71 dropbearkeyobjs=$(allobjs) $(KEYOBJS) 71 dropbearkeyobjs=$(allobjs) $(KEYOBJS)
72 dropbearconvertobjs=$(allobjs) $(CONVERTOBJS) 72 dropbearconvertobjs=$(allobjs) $(CONVERTOBJS)
73 # CXX only set when fuzzing 73 # CXX only set when fuzzing
74 CXX=@CXX@ 74 CXX=@CXX@
75 FUZZ_CLEAN=fuzz-clean
75 else 76 else
76 dropbearobjs=$(COMMONOBJS) $(CLISVROBJS) $(SVROBJS) 77 dropbearobjs=$(COMMONOBJS) $(CLISVROBJS) $(SVROBJS)
77 dbclientobjs=$(COMMONOBJS) $(CLISVROBJS) $(CLIOBJS) 78 dbclientobjs=$(COMMONOBJS) $(CLISVROBJS) $(CLIOBJS)
78 dropbearkeyobjs=$(COMMONOBJS) $(KEYOBJS) 79 dropbearkeyobjs=$(COMMONOBJS) $(KEYOBJS)
79 dropbearconvertobjs=$(COMMONOBJS) $(CONVERTOBJS) 80 dropbearconvertobjs=$(COMMONOBJS) $(CONVERTOBJS)
244 $(MAKE) -C libtommath clean 245 $(MAKE) -C libtommath clean
245 246
246 sizes: dropbear 247 sizes: dropbear
247 objdump -t dropbear|grep ".text"|cut -d "." -f 2|sort -rn 248 objdump -t dropbear|grep ".text"|cut -d "." -f 2|sort -rn
248 249
249 clean: $(LIBTOM_CLEAN) thisclean 250 clean: $(LIBTOM_CLEAN) $(FUZZ_CLEAN) thisclean
250 251
251 thisclean: 252 thisclean:
252 -rm -f dropbear$(EXEEXT) dbclient$(EXEEXT) dropbearkey$(EXEEXT) \ 253 -rm -f dropbear$(EXEEXT) dbclient$(EXEEXT) dropbearkey$(EXEEXT) \
253 dropbearconvert$(EXEEXT) scp$(EXEEXT) scp-progress$(EXEEXT) \ 254 dropbearconvert$(EXEEXT) scp$(EXEEXT) scp-progress$(EXEEXT) \
254 dropbearmulti$(EXEEXT) *.o *.da *.bb *.bbg *.prof 255 dropbearmulti$(EXEEXT) *.o *.da *.bb *.bbg *.prof
269 # list of fuzz targets 270 # list of fuzz targets
270 FUZZ_TARGETS=fuzzer-preauth fuzzer-pubkey fuzzer-verify fuzzer-preauth_nomaths \ 271 FUZZ_TARGETS=fuzzer-preauth fuzzer-pubkey fuzzer-verify fuzzer-preauth_nomaths \
271 fuzzer-kexdh fuzzer-kexecdh fuzzer-kexcurve25519 fuzzer-client fuzzer-client_nomaths 272 fuzzer-kexdh fuzzer-kexecdh fuzzer-kexcurve25519 fuzzer-client fuzzer-client_nomaths
272 273
273 FUZZER_OPTIONS = $(addsuffix .options, $(FUZZ_TARGETS)) 274 FUZZER_OPTIONS = $(addsuffix .options, $(FUZZ_TARGETS))
275 FUZZ_OBJS = $(addprefix fuzz/,$(addsuffix .o,$(FUZZ_TARGETS)))
274 276
275 list-fuzz-targets: 277 list-fuzz-targets:
276 @echo $(FUZZ_TARGETS) 278 @echo $(FUZZ_TARGETS)
277 279
278 # fuzzers that don't use libfuzzer, just a standalone harness that feeds inputs 280 # fuzzers that don't use libfuzzer, just a standalone harness that feeds inputs
279 fuzzstandalone: FUZZLIB=fuzz-harness.o 281 fuzzstandalone: FUZZLIB=fuzz/fuzz-harness.o
280 fuzzstandalone: fuzz-harness.o fuzz-targets 282 fuzzstandalone: fuzz/fuzz-harness.o fuzz-targets
281 283
282 fuzz-harness.o: $(HEADERS) $(LIBTOM_DEPS) Makefile $(allobjs) fuzz-common.o 284 # Build all the fuzzers. Usually like
283 285 # make fuzz-targets FUZZLIB=-lFuzzer.a
284 # build all the fuzzers. This will require fail to link unless built with 286 # the library provides main(). Otherwise
285 # make fuzz-targets FUZZLIB=-lFuzzer.a 287 # make fuzzstandalone
286 # or similar - the library provides main(). 288 # provides a main in fuzz-harness.c
287 fuzz-targets: $(FUZZ_TARGETS) $(FUZZER_OPTIONS) 289 fuzz-targets: $(FUZZ_TARGETS) $(FUZZER_OPTIONS)
288 290
289 fuzzer-preauth: fuzzer-preauth.o fuzz-harness.o 291 $(FUZZ_TARGETS): $(FUZZ_OBJS) $(allobjs) $(LIBTOM_DEPS)
290 $(CXX) $(CXXFLAGS) [email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@ 292 $(CXX) $(CXXFLAGS) fuzz/[email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) -lcrypt
291
292 fuzzer-preauth_nomaths: fuzzer-preauth_nomaths.o fuzz-harness.o
293 $(CXX) $(CXXFLAGS) [email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@
294
295 fuzzer-pubkey: fuzzer-pubkey.o fuzz-harness.o
296 $(CXX) $(CXXFLAGS) [email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@
297
298 fuzzer-verify: fuzzer-verify.o fuzz-harness.o
299 $(CXX) $(CXXFLAGS) [email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@
300
301 fuzzer-kexdh: fuzzer-kexdh.o fuzz-harness.o
302 $(CXX) $(CXXFLAGS) [email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@
303
304 fuzzer-kexecdh: fuzzer-kexecdh.o fuzz-harness.o
305 $(CXX) $(CXXFLAGS) [email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@
306
307 fuzzer-kexcurve25519: fuzzer-kexcurve25519.o fuzz-harness.o
308 $(CXX) $(CXXFLAGS) [email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@
309
310 fuzzer-client: fuzzer-client.o fuzz-harness.o
311 $(CXX) $(CXXFLAGS) [email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@
312
313 fuzzer-client_nomaths: fuzzer-client_nomaths.o fuzz-harness.o
314 $(CXX) $(CXXFLAGS) [email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@
315 293
316 fuzzer-%.options: Makefile 294 fuzzer-%.options: Makefile
317 echo "[libfuzzer]" > $@ 295 echo "[libfuzzer]" > $@
318 echo "max_len = 50000" >> $@ 296 echo "max_len = 50000" >> $@
319 297
327 echo > hostkeys.c 305 echo > hostkeys.c
328 /usr/bin/xxd -i -a keyr >> hostkeys.c 306 /usr/bin/xxd -i -a keyr >> hostkeys.c
329 /usr/bin/xxd -i -a keye >> hostkeys.c 307 /usr/bin/xxd -i -a keye >> hostkeys.c
330 /usr/bin/xxd -i -a keyd >> hostkeys.c 308 /usr/bin/xxd -i -a keyd >> hostkeys.c
331 /usr/bin/xxd -i -a keyed25519 >> hostkeys.c 309 /usr/bin/xxd -i -a keyed25519 >> hostkeys.c
310
311 fuzz-clean:
312 -rm -f fuzz/*.o $(FUZZ_TARGETS) $(FUZZER_OPTIONS)