|
|
@@ -3,37 +3,48 @@ MK_FILE_PATH = $(lastword $(MAKEFILE_LIST)) |
|
|
|
PRJ_DIR = $(abspath $(dir $(MK_FILE_PATH))) |
|
|
|
GOPATH_LOCAL = $(PRJ_DIR)/build |
|
|
|
GOPATH_DIR = github.com/cloudflare/p751sidh |
|
|
|
CSHAKE_PKG = github.com/henrydcase/nobs/hash/sha3 |
|
|
|
CSHAKE_PKG ?= github.com/henrydcase/nobs/hash/sha3 |
|
|
|
TARGETS = p751toolbox sidh sike |
|
|
|
GOARCH ?= |
|
|
|
OPTS_GCCGO ?= -compiler gccgo -O2 -g |
|
|
|
OPTS_TAGS ?= -tags=noasm |
|
|
|
OPTS ?= |
|
|
|
OPTS_TAGS ?= -tags=noasm |
|
|
|
NOASM ?= |
|
|
|
# -run="NonExistent" is set to make sure tests are not run before benchmarking |
|
|
|
BENCH_OPTS ?= -bench=. -run="NonExistent" |
|
|
|
# whether to be verbose |
|
|
|
V ?= 1 |
|
|
|
|
|
|
|
ifeq ($(NOASM),1) |
|
|
|
OPTS+=$(OPTS_TAGS) |
|
|
|
endif |
|
|
|
|
|
|
|
ifeq ($(V),1) |
|
|
|
OPTS += -v # Be verbose |
|
|
|
BENCH_OPTS += -gcflags=-m # Show results from inlining |
|
|
|
endif |
|
|
|
|
|
|
|
clean: |
|
|
|
rm -rf $(GOPATH_LOCAL) |
|
|
|
rm -rf coverage*.txt |
|
|
|
|
|
|
|
prep: |
|
|
|
build_env: |
|
|
|
GOPATH=$(GOPATH_LOCAL) go get $(CSHAKE_PKG) |
|
|
|
mkdir -p $(GOPATH_LOCAL)/src/$(GOPATH_DIR) |
|
|
|
cp -rf p751toolbox $(GOPATH_LOCAL)/src/$(GOPATH_DIR) |
|
|
|
cp -rf sidh $(GOPATH_LOCAL)/src/$(GOPATH_DIR) |
|
|
|
cp -rf sike $(GOPATH_LOCAL)/src/$(GOPATH_DIR) |
|
|
|
cp -rf etc $(GOPATH_LOCAL)/src/$(GOPATH_DIR) |
|
|
|
|
|
|
|
test-%: prep |
|
|
|
GOPATH=$(GOPATH_LOCAL) go test -v $(OPTS) $(GOPATH_DIR)/$* |
|
|
|
copy-target-%: |
|
|
|
cp -rf $* $(GOPATH_LOCAL)/src/$(GOPATH_DIR) |
|
|
|
|
|
|
|
prep_targets: build_env $(addprefix copy-target-, $(TARGETS)) |
|
|
|
|
|
|
|
test-%: prep_targets |
|
|
|
GOPATH=$(GOPATH_LOCAL) go test $(OPTS) $(GOPATH_DIR)/$* |
|
|
|
|
|
|
|
bench-%: prep |
|
|
|
cd $*; GOPATH=$(GOPATH_LOCAL) go test -v $(OPTS) -bench=. |
|
|
|
bench-%: prep_targets |
|
|
|
cd $*; GOPATH=$(GOPATH_LOCAL) go test $(OPTS) $(BENCH_OPTS) |
|
|
|
|
|
|
|
cover-%: prep |
|
|
|
cover-%: prep_targets |
|
|
|
GOPATH=$(GOPATH_LOCAL) go test \ |
|
|
|
-race -coverprofile=coverage_$*.txt -covermode=atomic $(OPTS) $(GOPATH_DIR)/$* |
|
|
|
cat coverage_$*.txt >> coverage.txt |
|
|
|