| CFLAGS += -g -O0 -std=gnu99 -fPIC -Wall -Wextra -Werror \ |
| -Wno-unused-parameter -Wno-missing-field-initializers |
| CPPFLAGS += -I./ext |
| |
| ifdef WITH_ASAN |
| LDFLAGS += -fsanitize=address |
| CFLAGS += -fsanitize=address |
| endif |
| |
| ifdef WITH_COVERAGE |
| LDFLAGS += -coverage |
| CFLAGS += -coverage |
| endif |
| |
| ifdef WITH_VALGRIND |
| VALGRIND := valgrind --leak-check=full --show-reachable=yes --track-origins=yes |
| TEST_OPT := --no-exec |
| endif |
| |
| TARGETS = testaes testmodes testsha1 testsha2 testsha3 testsalsa20 \ |
| testcurve25519 testpoly1305 testnorx testchacha20poly1305 \ |
| testdrbg |
| all: $(TARGETS) |
| |
| SOURCES = aes.o sha256.o sha512.o chash.o hmac.o pbkdf2.o modes.o eax.o \ |
| gf128.o blockwise.o cmac.o salsa20.o chacha20.o curve25519.o \ |
| gcm.o cbcmac.o ccm.o sha3.o sha1.o poly1305.o \ |
| norx.o chacha20poly1305.o drbg.o ocb.o |
| |
| testaes: $(SOURCES) testaes.o |
| testmodes: $(SOURCES) testmodes.o |
| testsha1: $(SOURCES) testsha1.o |
| testsha2: $(SOURCES) testsha2.o |
| testsha3: $(SOURCES) testsha3.o |
| testsalsa20: $(SOURCES) testsalsa20.o |
| testcurve25519: $(SOURCES) testcurve25519.o |
| testpoly1305: $(SOURCES) testpoly1305.o |
| testnorx: $(SOURCES) testnorx.o |
| testchacha20poly1305: $(SOURCES) testchacha20poly1305.o |
| testdrbg: $(SOURCES) testdrbg.o |
| |
| clean: |
| rm -f *.o *.pyc $(TARGETS) *.gcov *.gcda *.gcno |
| |
| test: $(TARGETS) |
| for x in $(TARGETS) ; do \ |
| echo "Running $$x" ; \ |
| $(VALGRIND) ./$$x $(TEST_OPT) ; \ |
| done |
| |
| cover: test |
| gcov *.c |
| echo 'Lines with missing coverage:' |
| grep '#####' *.gcov | grep -vE '(cutest|testutil).h.gcov' |