Browse Source

makefile: improvements

trials/prep_p503
Henry Case 6 years ago
committed by Kris Kwiatkowski
parent
commit
7bf83bb613
2 changed files with 23 additions and 11 deletions
  1. +1
    -0
      .travis.yml
  2. +22
    -11
      Makefile

+ 1
- 0
.travis.yml View File

@@ -8,6 +8,7 @@ matrix:
fast_finish: true fast_finish: true


script: script:
- make test
- make bench - make bench
- make cover - make cover
- NOASM=1 make cover-sidh - NOASM=1 make cover-sidh


+ 22
- 11
Makefile View File

@@ -3,37 +3,48 @@ MK_FILE_PATH = $(lastword $(MAKEFILE_LIST))
PRJ_DIR = $(abspath $(dir $(MK_FILE_PATH))) PRJ_DIR = $(abspath $(dir $(MK_FILE_PATH)))
GOPATH_LOCAL = $(PRJ_DIR)/build GOPATH_LOCAL = $(PRJ_DIR)/build
GOPATH_DIR = github.com/cloudflare/p751sidh 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 TARGETS = p751toolbox sidh sike
GOARCH ?= GOARCH ?=
OPTS_GCCGO ?= -compiler gccgo -O2 -g OPTS_GCCGO ?= -compiler gccgo -O2 -g
OPTS_TAGS ?= -tags=noasm
OPTS ?= OPTS ?=
OPTS_TAGS ?= -tags=noasm
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) ifeq ($(NOASM),1)
OPTS+=$(OPTS_TAGS) OPTS+=$(OPTS_TAGS)
endif endif


ifeq ($(V),1)
OPTS += -v # Be verbose
BENCH_OPTS += -gcflags=-m # Show results from inlining
endif

clean: clean:
rm -rf $(GOPATH_LOCAL) rm -rf $(GOPATH_LOCAL)
rm -rf coverage*.txt rm -rf coverage*.txt


prep:
build_env:
GOPATH=$(GOPATH_LOCAL) go get $(CSHAKE_PKG) GOPATH=$(GOPATH_LOCAL) go get $(CSHAKE_PKG)
mkdir -p $(GOPATH_LOCAL)/src/$(GOPATH_DIR) 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) 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 \ GOPATH=$(GOPATH_LOCAL) go test \
-race -coverprofile=coverage_$*.txt -covermode=atomic $(OPTS) $(GOPATH_DIR)/$* -race -coverprofile=coverage_$*.txt -covermode=atomic $(OPTS) $(GOPATH_DIR)/$*
cat coverage_$*.txt >> coverage.txt cat coverage_$*.txt >> coverage.txt


Loading…
Cancel
Save