# 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
#
# 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

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.freebsd-riscv64 \
	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-loong64 \
	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:

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.%-loong64: $(GOFILES)
	GOOS=$* GOARCH=loong64 $(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/$<

