GO_BIN = go PKGNAME = src.elv.sh SRC = cmd/elvish DIST = dist BIN_NAME = elvish build = GO111MODULE=on GOOS=$(1) GOARCH=$(2) $(GO_BIN) build -o $(3) $(PKGNAME)/$(4) .PHONY : all .PHONY : linux_amd64 .PHONY : windows_amd64 .PHONY : linux_arm .PHONY : linux_arm64 .PHONY : deps all : linux_amd64 windows_amd64 linux_arm linux_arm64 linux_amd64 : $(DIST)/$(BIN_NAME)_linux_amd64 linux_amd64 : $(DIST)/$(BIN_NAME)_linux_arm64 linux_amd64 : $(DIST)/$(BIN_NAME)_linux_arm linux_amd64 : $(DIST)/$(BIN_NAME)_windows_amd64.exe $(DIST)/$(BIN_NAME)_linux_amd64 : $(SRC)/ $(call build,linux,amd64,$@,$^) $(DIST)/$(BIN_NAME)_linux_arm64 : $(SRC)/ $(call build,linux,arm64,$@,$^) $(DIST)/$(BIN_NAME)_linux_arm : $(SRC)/ $(call build,linux,arm,$@,$^) $(DIST)/$(BIN_NAME)_windows_amd64.exe : $(SRC)/ $(call build,windows,amd64,$@,$^)