mirror of
https://github.com/luxfi/lamport.git
synced 2026-10-30 16:21:45 +00:00
92 lines
2.0 KiB
Makefile
92 lines
2.0 KiB
Makefile
# Lamport OTS - Makefile
|
|
|
|
.PHONY: all build test bench clean lint fmt help
|
|
|
|
# Go parameters
|
|
GOCMD=go
|
|
GOBUILD=$(GOCMD) build
|
|
GOTEST=$(GOCMD) test
|
|
GOGET=$(GOCMD) get
|
|
GOMOD=$(GOCMD) mod
|
|
GOFMT=gofmt
|
|
BINARY_NAME=lamport
|
|
|
|
all: test build
|
|
|
|
build:
|
|
$(GOBUILD) -o bin/$(BINARY_NAME) -v .
|
|
|
|
test:
|
|
$(GOTEST) -v ./...
|
|
|
|
test-race:
|
|
$(GOTEST) -race -v ./...
|
|
|
|
bench:
|
|
$(GOTEST) -bench=. -benchmem ./primitives/
|
|
|
|
coverage:
|
|
$(GOTEST) -coverprofile=coverage.out ./...
|
|
$(GOCMD) tool cover -html=coverage.out -o coverage.html
|
|
|
|
clean:
|
|
$(GOCMD) clean
|
|
rm -f bin/$(BINARY_NAME)
|
|
rm -f coverage.out coverage.html
|
|
|
|
lint:
|
|
golangci-lint run ./...
|
|
|
|
fmt:
|
|
$(GOFMT) -s -w .
|
|
|
|
tidy:
|
|
$(GOMOD) tidy
|
|
|
|
deps:
|
|
$(GOGET) -u ./...
|
|
|
|
# Run the CLI
|
|
run:
|
|
$(GOBUILD) -o bin/$(BINARY_NAME) . && ./bin/$(BINARY_NAME) $(ARGS)
|
|
|
|
# Demo commands
|
|
demo-keygen:
|
|
@$(GOBUILD) -o bin/$(BINARY_NAME) . && ./bin/$(BINARY_NAME) keygen
|
|
|
|
demo-chain:
|
|
@$(GOBUILD) -o bin/$(BINARY_NAME) . && ./bin/$(BINARY_NAME) chain 10
|
|
|
|
demo-threshold:
|
|
@$(GOBUILD) -o bin/$(BINARY_NAME) . && ./bin/$(BINARY_NAME) threshold 3 5
|
|
|
|
demo-benchmark:
|
|
@$(GOBUILD) -o bin/$(BINARY_NAME) . && ./bin/$(BINARY_NAME) benchmark
|
|
|
|
# Fuzz testing
|
|
fuzz:
|
|
$(GOTEST) -fuzz=FuzzSignVerify -fuzztime=30s ./primitives/
|
|
|
|
help:
|
|
@echo "Lamport OTS - Post-Quantum One-Time Signatures"
|
|
@echo ""
|
|
@echo "Targets:"
|
|
@echo " build Build the CLI binary"
|
|
@echo " test Run all tests"
|
|
@echo " test-race Run tests with race detector"
|
|
@echo " bench Run benchmarks"
|
|
@echo " coverage Generate coverage report"
|
|
@echo " lint Run linter"
|
|
@echo " fmt Format code"
|
|
@echo " tidy Tidy go.mod"
|
|
@echo " clean Clean build artifacts"
|
|
@echo ""
|
|
@echo "Demo targets:"
|
|
@echo " demo-keygen Generate a key pair"
|
|
@echo " demo-chain Generate a key chain"
|
|
@echo " demo-threshold Demo threshold signing"
|
|
@echo " demo-benchmark Run benchmarks"
|
|
@echo ""
|
|
@echo "Fuzz testing:"
|
|
@echo " fuzz Run fuzz tests (30s)"
|