Makefile 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. # NB. libssh and libopenbsd-compat should be built with the same sanitizer opts.
  2. CC=clang-11
  3. CXX=clang++-11
  4. FUZZ_FLAGS=-fsanitize=address,fuzzer -fno-omit-frame-pointer
  5. FUZZ_LIBS=-lFuzzer
  6. CXXFLAGS=-O2 -g -Wall -Wextra -Wno-unused-parameter -I ../../.. $(FUZZ_FLAGS)
  7. CFLAGS=$(CXXFLAGS)
  8. LDFLAGS=-L ../../.. -L ../../../openbsd-compat -g $(FUZZ_FLAGS)
  9. LIBS=-lssh -lopenbsd-compat -lcrypto -lfido2 -lcbor $(FUZZ_LIBS)
  10. SK_NULL_OBJS=ssh-sk-null.o
  11. COMMON_DEPS=../../../libssh.a
  12. TARGETS=pubkey_fuzz sig_fuzz authopt_fuzz sshsig_fuzz \
  13. sshsigopt_fuzz privkey_fuzz kex_fuzz agent_fuzz
  14. all: $(TARGETS)
  15. .cc.o:
  16. $(CXX) $(CXXFLAGS) -c $< -o $@
  17. pubkey_fuzz: pubkey_fuzz.o $(SK_NULL_OBJS) $(COMMON_DEPS)
  18. $(CXX) -o $@ pubkey_fuzz.o $(SK_NULL_OBJS) $(LDFLAGS) $(LIBS)
  19. sig_fuzz: sig_fuzz.o $(SK_NULL_OBJS) $(COMMON_DEPS)
  20. $(CXX) -o $@ sig_fuzz.o $(SK_NULL_OBJS) $(LDFLAGS) $(LIBS)
  21. authopt_fuzz: authopt_fuzz.o $(SK_NULL_OBJS) $(COMMON_DEPS)
  22. $(CXX) -o $@ authopt_fuzz.o $(SK_NULL_OBJS) ../../../auth-options.o $(LDFLAGS) $(LIBS)
  23. sshsig_fuzz: sshsig_fuzz.o $(SK_NULL_OBJS) $(COMMON_DEPS)
  24. $(CXX) -o $@ sshsig_fuzz.o $(SK_NULL_OBJS) ../../../sshsig.o $(LDFLAGS) $(LIBS)
  25. sshsigopt_fuzz: sshsigopt_fuzz.o $(SK_NULL_OBJS) $(COMMON_DEPS)
  26. $(CXX) -o $@ sshsigopt_fuzz.o $(SK_NULL_OBJS) ../../../sshsig.o $(LDFLAGS) $(LIBS)
  27. privkey_fuzz: privkey_fuzz.o $(SK_NULL_OBJS) $(COMMON_DEPS)
  28. $(CXX) -o $@ privkey_fuzz.o $(SK_NULL_OBJS) $(LDFLAGS) $(LIBS)
  29. kex_fuzz: kex_fuzz.o $(SK_NULL_OBJS) $(COMMON_DEPS)
  30. $(CXX) -o $@ kex_fuzz.o $(SK_NULL_OBJS) $(LDFLAGS) $(LIBS) -lz
  31. agent_fuzz: agent_fuzz.o agent_fuzz_helper.o sk-dummy.o ../../../ssh-sk.o $(COMMON_DEPS)
  32. $(CXX) -o $@ agent_fuzz.o agent_fuzz_helper.o sk-dummy.o ../../../ssh-sk.o $(LDFLAGS) $(LIBS) -lz
  33. agent_fuzz_helper.o: agent_fuzz_helper.c ../../../ssh-agent.c
  34. sk-dummy.o: ../sk-dummy/sk-dummy.c
  35. $(CC) $(CFLAGS) -c -o $@ ../sk-dummy/sk-dummy.c -DSK_DUMMY_INTEGRATE=1 $(LDFLAGS)
  36. clean:
  37. -rm -f *.o $(TARGETS)