You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

44 line
1.2 KiB

  1. # Constants
  2. MK_FILE_PATH = $(lastword $(MAKEFILE_LIST))
  3. PRJ_DIR = $(abspath $(dir $(MK_FILE_PATH)))
  4. GOPATH_LOCAL = $(PRJ_DIR)/build
  5. GOPATH_DIR = github.com/cloudflare/p751sidh
  6. CSHAKE_PKG = github.com/henrydcase/nobs/hash/sha3
  7. TARGETS = p751toolbox sidh sike
  8. GOARCH ?=
  9. OPTS_GCCGO ?= -compiler gccgo -O2 -g
  10. OPTS_TAGS ?= -tags=noasm
  11. OPTS ?=
  12. NOASM ?=
  13. ifeq ($(NOASM),1)
  14. OPTS+=$(OPTS_TAGS)
  15. endif
  16. clean:
  17. rm -rf $(GOPATH_LOCAL)
  18. rm -rf coverage*.txt
  19. prep:
  20. GOPATH=$(GOPATH_LOCAL) go get $(CSHAKE_PKG)
  21. mkdir -p $(GOPATH_LOCAL)/src/$(GOPATH_DIR)
  22. cp -rf p751toolbox $(GOPATH_LOCAL)/src/$(GOPATH_DIR)
  23. cp -rf sidh $(GOPATH_LOCAL)/src/$(GOPATH_DIR)
  24. cp -rf sike $(GOPATH_LOCAL)/src/$(GOPATH_DIR)
  25. cp -rf etc $(GOPATH_LOCAL)/src/$(GOPATH_DIR)
  26. test-%: prep
  27. GOPATH=$(GOPATH_LOCAL) go test -v $(OPTS) $(GOPATH_DIR)/$*
  28. bench-%: prep
  29. cd $*; GOPATH=$(GOPATH_LOCAL) go test -v $(OPTS) -bench=.
  30. cover-%: prep
  31. GOPATH=$(GOPATH_LOCAL) go test \
  32. -race -coverprofile=coverage_$*.txt -covermode=atomic $(OPTS) $(GOPATH_DIR)/$*
  33. cat coverage_$*.txt >> coverage.txt
  34. rm coverage_$*.txt
  35. test: $(addprefix test-, $(TARGETS))
  36. bench: $(addprefix bench-, $(TARGETS))
  37. cover: $(addprefix cover-, $(TARGETS))