I write below Makefile to build Golang code for different platforms. (My OS is Windows 10 and run Makefile through command prompt)
GOCMD = go
GOBUILD = $(GOCMD) build
GOFILES = $(wildcard *.go)
SONG_PATH = ./song-service
SONG_PATH_OUTPOUT = ./song-service/cmd
SONG_BINARY_NAME_LIN = songservice_lin
song-build-lin:
set GOOS=linux
set GOARCH=amd64
$(GOBUILD) -o "$(SONG_PATH_OUTPOUT)/$(SONG_BINARY_NAME_LIN)" -v "$(SONG_PATH)/$(GOFILES)"
When I run make song-build-lin
it runs without error but GOOS variable doesn't set. But when I run set GOOS=linux
in command prompt directly it works!