Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 

66 рядки
1.8 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. CPU_PKG = golang.org/x/sys/cpu
  8. TARGETS = p751 sidh sike
  9. GO ?= go
  10. GOARCH ?=
  11. OPTS_GCCGO ?= -compiler gccgo -O2 -g
  12. OPTS ?=
  13. OPTS_TAGS ?= -tags=noasm
  14. NOASM ?=
  15. # -run="NonExistent" is set to make sure tests are not run before benchmarking
  16. BENCH_OPTS ?= -bench=. -run="NonExistent"
  17. # whether to be verbose
  18. V ?= 1
  19. ifeq ($(NOASM),1)
  20. OPTS+=$(OPTS_TAGS)
  21. endif
  22. ifeq ($(V),1)
  23. OPTS += -v # Be verbose
  24. BENCH_OPTS += -gcflags=-m # Show results from inlining
  25. endif
  26. all: test
  27. clean:
  28. rm -rf $(GOPATH_LOCAL)
  29. rm -rf coverage*.txt
  30. build_env:
  31. GOPATH=$(GOPATH_LOCAL) $(GO) get $(CSHAKE_PKG) $(CPU_PKG)
  32. mkdir -p $(GOPATH_LOCAL)/src/$(GOPATH_DIR)
  33. cp -rf internal $(GOPATH_LOCAL)/src/$(GOPATH_DIR)
  34. cp -rf etc $(GOPATH_LOCAL)/src/$(GOPATH_DIR)
  35. copy-target-%:
  36. cp -rf $* $(GOPATH_LOCAL)/src/$(GOPATH_DIR)
  37. prep_targets: build_env $(addprefix copy-target-, $(TARGETS))
  38. install-%: prep_targets
  39. GOPATH=$(GOPATH_LOCAL) $(GO) install $(OPTS) $(GOPATH_DIR)/$*
  40. test-%: prep_targets
  41. GOPATH=$(GOPATH_LOCAL) $(GO) vet $(GOPATH_DIR)/$*
  42. GOPATH=$(GOPATH_LOCAL) $(GO) test $(OPTS) $(GOPATH_DIR)/$*
  43. bench-%: prep_targets
  44. GOPATH=$(GOPATH_LOCAL) $(GO) test $(OPTS) $(GOPATH_DIR)/$* $(BENCH_OPTS)
  45. cover-%: prep_targets
  46. GOPATH=$(GOPATH_LOCAL) $(GO) test \
  47. -race -coverprofile=coverage_$*.txt -covermode=atomic $(OPTS) $(GOPATH_DIR)/$*
  48. cat coverage_$*.txt >> coverage.txt
  49. rm coverage_$*.txt
  50. bench: $(addprefix bench-, $(TARGETS))
  51. cover: $(addprefix cover-, $(TARGETS))
  52. install: $(addprefix install-, $(TARGETS))
  53. test: $(addprefix test-, $(TARGETS))