# Common targets:
#
#  - compile: build all buildlets (but do not upload)
#  - upload: build and upload all buildlets to prod
#  - dev-upload: build and upload all buildlets to dev cluster
#  - install-go: install the version of Go needed by the Makefile
#
# Individual targets:
#
#  - buildlet.linux-amd64: build buildlet for linux-amd64 (but do not upload)
#  - upload.linux-amd64: build buildlet for linux-amd64 and upload to prod
#  - dev-upload.linux-amd64: build buildlet for linux-amd64 and upload to dev cluster

GO=go1.19

ALL=\
	buildlet.aix-ppc64 \
	buildlet.darwin-amd64 \
	buildlet.darwin-arm64 \
	buildlet.dragonfly-amd64 \
	buildlet.freebsd-amd64 \
	buildlet.freebsd-arm \
	buildlet.freebsd-arm-5 \
	buildlet.freebsd-arm-7 \
	buildlet.illumos-amd64 \
	buildlet.linux-amd64 \
	buildlet.linux-arm \
	buildlet.linux-arm-5 \
	buildlet.linux-arm-7 \
	buildlet.linux-arm-arm5 \
	buildlet.linux-arm64 \
	buildlet.linux-mips \
	buildlet.linux-mips64 \
	buildlet.linux-mips64le \
	buildlet.linux-mipsle \
	buildlet.linux-ppc64 \
	buildlet.linux-ppc64le \
	buildlet.linux-riscv64 \
	buildlet.linux-s390x \
	buildlet.netbsd-386 \
	buildlet.netbsd-amd64 \
	buildlet.netbsd-arm \
	buildlet.netbsd-arm-5 \
	buildlet.netbsd-arm-7 \
	buildlet.netbsd-arm64 \
	buildlet.openbsd-386 \
	buildlet.openbsd-amd64 \
	buildlet.openbsd-arm \
	buildlet.openbsd-arm-7 \
	buildlet.plan9-386 \
	buildlet.plan9-amd64 \
	buildlet.plan9-arm \
	buildlet.plan9-arm-5 \
	buildlet.plan9-arm-7 \
	buildlet.solaris-amd64 \
	buildlet.windows-386 \
	buildlet.windows-amd64 \
	buildlet.windows-arm64 \

usage: FORCE
	@sed -E '/^$$/q; s/^# ?//' Makefile
	exit 1

FORCE:

# A convenience for people who are missing $(GO).
install-go:
	go install golang.org/dl/$(GO)@latest
	$(GO) download

clean:
	rm -f buildlet.*-*

# Compile everything without uploading.
compile: $(ALL)

GOFILES:=$(shell ls *.go)

VERSION:=$(USER)-$(shell date -u +'%Y-%m-%dT%H:%M:%SZ')

BUILD=CGO_ENABLED=0 $(GO) build -ldflags='-X main.Version=$(VERSION)' -o

buildlet.%-386: $(GOFILES)
	GOOS=$* GOARCH=386 $(BUILD) $@

buildlet.%-amd64: $(GOFILES)
	GOOS=$* GOARCH=amd64 $(BUILD) $@

# For ARM we need both GOARM settings because on some operating systems
# (for example OpenBSD) we can't write a single binary that runs on both ARMv5 and ARMv7.
buildlet.%-arm-5: $(GOFILES)
	GOOS=$* GOARCH=arm GOARM=5 $(BUILD) $@
buildlet.%-arm-7: $(GOFILES)
	GOOS=$* GOARCH=arm GOARM=7 $(BUILD) $@

# Legacy names that existing reverse builders may still be downloading.
# Yes, both the Linux variants are GOARM=5.
# (On Linux it doesn't matter much since we use the vdso routines for atomics.)
# Reverse builders should eventually be updated to use the -5 or -7 form directly.
buildlet.freebsd-arm: buildlet.freebsd-arm-5
	cp $< $@
buildlet.linux-arm: buildlet.linux-arm-5
	cp $< $@
buildlet.linux-arm-arm5: buildlet.linux-arm-5
	cp $< $@
buildlet.netbsd-arm: buildlet.netbsd-arm-7
	cp $< $@
buildlet.openbsd-arm: buildlet.openbsd-arm-7
	cp $< $@
buildlet.plan9-arm: buildlet.plan9-arm-5
	cp $< $@

buildlet.%-arm64: $(GOFILES)
	GOOS=$* GOARCH=arm64 $(BUILD) $@

buildlet.%-mips: $(GOFILES)
	GOOS=$* GOARCH=mips $(BUILD) $@

buildlet.%-mipsle: $(GOFILES)
	GOOS=$* GOARCH=mipsle $(BUILD) $@

buildlet.%-mips64: $(GOFILES)
	GOOS=$* GOARCH=mips64 $(BUILD) $@

buildlet.%-mips64le: $(GOFILES)
	GOOS=$* GOARCH=mips64le $(BUILD) $@

buildlet.%-ppc64: $(GOFILES)
	GOOS=$* GOARCH=ppc64 $(BUILD) $@

buildlet.%-ppc64le: $(GOFILES)
	GOOS=$* GOARCH=ppc64le $(BUILD) $@

buildlet.%-riscv64: $(GOFILES)
	GOOS=$* GOARCH=riscv64 $(BUILD) $@

buildlet.%-s390x: $(GOFILES)
	GOOS=$* GOARCH=s390x $(BUILD) $@

# Upload everything.
upload: $(ALL:buildlet.%=upload.%)

UPLOAD=$(GO) run golang.org/x/build/cmd/upload -verbose -public -cacheable=false

upload.%: buildlet.%
	$(UPLOAD) -file=$< go-builder-data/$<

# Upload everything to dev cluster.
dev-upload: $(ALL:buildlet.%=upload.%)

dev-upload.%: buildlet.%
	$(UPLOAD) -file=$< dev-go-builder-data/$<

