Files
gasm-sdk/justfile
T
petrbalvin ad6e3360df
Test / vet (push) Successful in 47s
Test / test (push) Failing after 2m4s
Test / build (push) Skipped
feat: release v0.29.0 with RISC-V GOOBJ, debugger enhancements, and new
CLI commands
2026-08-05 20:08:56 +02:00

46 lines
1.3 KiB
Makefile

# Copyright (c) 2026 Petr Balvín <opensource@petrbalvin.org> (https://petrbalvin.org)
# SPDX-License-Identifier: BSD-3-Clause
# gasm-devkit — developer tooling for Go's Plan 9 assembler (GAsm).
version := "0.29.0"
default:
@just --list
# Download module dependencies.
install:
go mod download
# Vet + gofmt check — zero errors, zero warnings.
build:
go vet ./...
@test -z "$(gofmt -l .)" || { echo "gofmt diff:"; gofmt -l .; exit 1; }
# Full test suite + race detector + 80 % coverage gate.
test:
go test -race -count=1 -coverprofile=coverage.out ./...
go tool cover -func=coverage.out | awk '/^total:/{gsub("%","",$3);if($3+0<80){print "coverage "$3"% < 80%";exit 1}print "coverage "$3"%"}'
# Format all Go sources.
fmt:
gofmt -w .
# Run the gasm CLI (pass args after --, e.g. `just run -- lint file.s`).
run *ARGS:
go run -ldflags "-X main.version={{version}}" ./cmd/gasm {{ARGS}}
# Install the gasm binary into $GOBIN (stamped with the release version).
install-bin:
go install -ldflags "-X main.version={{version}}" ./cmd/gasm
# Regenerate the architecture instruction tables from the Go toolchain source.
gen:
go run _gen/gen.go
gofmt -w arch/
# Remove build artefacts.
uninstall:
rm -f coverage.out gasm
find . -name '*.test' -delete