47 lines
1.2 KiB
Makefile
47 lines
1.2 KiB
Makefile
# Makefile de sysagent. Solo envuelve comandos estándar de Go: todo puede
|
|
# hacerse también a mano (ver README.md).
|
|
|
|
VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo 0.1.0)
|
|
LDFLAGS := -s -w -X main.version=$(VERSION)
|
|
BIN := sysagent
|
|
|
|
.PHONY: all build test race vet fmt check cross install clean live
|
|
|
|
all: check build
|
|
|
|
build:
|
|
go build -trimpath -ldflags "$(LDFLAGS)" -o $(BIN) ./cmd/sysagent
|
|
|
|
test:
|
|
go test ./...
|
|
|
|
# Requiere gcc (CGO) para el detector de carreras.
|
|
race:
|
|
CGO_ENABLED=1 go test -race ./...
|
|
|
|
vet:
|
|
go vet ./...
|
|
|
|
fmt:
|
|
gofmt -w .
|
|
|
|
# Lo que exige §99 antes de dar el proyecto por terminado.
|
|
check:
|
|
@test -z "$$(gofmt -l .)" || (echo "gofmt needed:"; gofmt -l .; exit 1)
|
|
go vet ./...
|
|
go test ./...
|
|
|
|
cross:
|
|
GOOS=linux GOARCH=amd64 go build -trimpath -ldflags "$(LDFLAGS)" -o $(BIN)-amd64 ./cmd/sysagent
|
|
GOOS=linux GOARCH=arm64 go build -trimpath -ldflags "$(LDFLAGS)" -o $(BIN)-arm64 ./cmd/sysagent
|
|
|
|
install: build
|
|
install -m 0755 $(BIN) /usr/local/bin/$(BIN)
|
|
|
|
# Pruebas contra servicios reales de Internet (NVD, Debian, buscador).
|
|
live:
|
|
go test -tags live -run Live -v ./internal/tools
|
|
|
|
clean:
|
|
rm -f $(BIN) $(BIN)-amd64 $(BIN)-arm64
|