kpmpgsmkii/client/src/thirdparty/SHA256/mark2/Makefile
2022-02-02 17:36:44 -06:00

32 lines
807 B
Makefile

COMPLR = $(shell which clang >/dev/null; echo $$?)
ifeq "$(COMPLR)" "0"
CC = clang
CFLAGS=-Oz -pedantic -Wall -Wextra -Weverything
else
CC = gcc
CFLAGS=-O3 -pedantic -Wall -Wextra -std=c99
endif
CBMCH = $(shell cbmc --help)
CBMCFLAGS = --unwind 8 --partial-loops --bounds-check --pointer-check \
--div-by-zero-check --signed-overflow-check
TARGET = sha256
$(TARGET).o: sha256.c sha256.h
$(CC) $(CFLAGS) -c -o $@ $<
test: sha256.c sha256.h
$(CC) $(CFLAGS) -o $(TARGET) -DSELF_TEST $<
all: $(TARGET)
.PHONY: clean verify
clean:
rm -f $(TARGET) *.o
verify:
@# Unsigned overflows are deliberate, so we skip such checks to avoid
@# code complication with wrapping additions into a safeguard function
cbmc sha256.c -DSELF_TEST $(CBMCFLAGS) $(findstring --memory-leak-check,$(CBMCH))