.PHONY: build run ci get-alpine-rootfs
.EXPORT_ALL_VARIABLES:

GOARCH=amd64
#GOARCH=arm
#GOOS=darwin
GOOS=linux

LDFLAGS=-w -s -X antoine-roux.tk/projects/go/firecracker-netns/internal/version.Version=$$(git rev-list -1 HEAD)
GOBUILDFLAGS=-tags dev

EXEC=out/main

build: out/alpine-minirootfs-3.19.0-x86_64.tar.gz $(EXEC)

run: $(EXEC)
	@chmod +x $(EXEC)
	$(EXEC)

ci:
	golangci-lint run --fix

get-alpine-rootfs: out/alpine-minirootfs-3.19.0-x86_64.tar.gz

publish:
	scp $(EXEC) sf314:~/firecracker/

dependencies:
	go mod download
	go mod verify

$(EXEC): cmd/main.go dependencies
	@echo "build for os $$GOOS and arch $$GOARCH"
	go build -o $@ -ldflags="$(LDFLAGS)" $(GOBUILDFLAGS) $<

out/alpine-minirootfs-3.19.0-x86_64.tar.gz:
	wget -O $@ https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/x86_64/alpine-minirootfs-3.19.0-x86_64.tar.gz