Makefile 831 B

12345678910111213141516171819202122232425262728293031323334
  1. GO_BIN = go
  2. PKGNAME = src.elv.sh
  3. SRC = cmd/elvish
  4. DIST = dist
  5. BIN_NAME = elvish
  6. build = GO111MODULE=on GOOS=$(1) GOARCH=$(2) $(GO_BIN) build -o $(3) $(PKGNAME)/$(4)
  7. .PHONY : all
  8. .PHONY : linux_amd64
  9. .PHONY : windows_amd64
  10. .PHONY : linux_arm
  11. .PHONY : linux_arm64
  12. .PHONY : deps
  13. all : linux_amd64 windows_amd64 linux_arm linux_arm64
  14. linux_amd64 : $(DIST)/$(BIN_NAME)_linux_amd64
  15. linux_amd64 : $(DIST)/$(BIN_NAME)_linux_arm64
  16. linux_amd64 : $(DIST)/$(BIN_NAME)_linux_arm
  17. linux_amd64 : $(DIST)/$(BIN_NAME)_windows_amd64.exe
  18. $(DIST)/$(BIN_NAME)_linux_amd64 : $(SRC)/
  19. $(call build,linux,amd64,$@,$^)
  20. $(DIST)/$(BIN_NAME)_linux_arm64 : $(SRC)/
  21. $(call build,linux,arm64,$@,$^)
  22. $(DIST)/$(BIN_NAME)_linux_arm : $(SRC)/
  23. $(call build,linux,arm,$@,$^)
  24. $(DIST)/$(BIN_NAME)_windows_amd64.exe : $(SRC)/
  25. $(call build,windows,amd64,$@,$^)