From ce8448dde61b65bc217aeca68cac6e8ffa33b672 Mon Sep 17 00:00:00 2001 From: William Markito Date: Mon, 27 Jul 2020 17:47:58 -0500 Subject: [PATCH 1/2] Adding multiple platforms to Makefile --- Makefile | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 55b703c35..cd8b0045b 100644 --- a/Makefile +++ b/Makefile @@ -1,17 +1,37 @@ REPO := quay.io/boson/faas BIN := faas +WINDOWS=$(BIN)_windows_amd64.exe +LINUX=$(BIN)_linux_amd64 +DARWIN=$(BIN)_darwin_amd64 + CODE := $(shell find . -name '*.go') DATE := $(shell date -u +"%Y%m%dT%H%M%SZ") HASH := $(shell git rev-parse --short HEAD 2>/dev/null) VTAG := $(shell git tag --points-at HEAD) VERS := $(shell [ -z $(VTAG) ] && echo 'tip' || echo $(VTAG) ) -all: $(BIN) +all: $(WINDOWS) $(LINUX) $(DARWIN) build: all -$(BIN): $(CODE) - go build -ldflags "-X main.date=$(DATE) -X main.vers=$(VERS) -X main.hash=$(HASH)" ./cmd/$(BIN) + +windows: $(WINDOWS) ## Build for Windows + +linux: $(LINUX) ## Build for Linux + +darwin: $(DARWIN) ## Build for Darwin (macOS) + +$(WINDOWS): + env GOOS=windows GOARCH=amd64 go build -i -v -o $(WINDOWS) -ldflags "-X main.date=$(DATE) -X main.vers=$(VERS) -X main.hash=$(HASH)" ./cmd/$(BIN) + +$(LINUX): + env GOOS=linux GOARCH=amd64 go build -i -v -o $(LINUX) -ldflags "-X main.date=$(DATE) -X main.vers=$(VERS) -X main.hash=$(HASH)" ./cmd/$(BIN) + +$(DARWIN): + env GOOS=darwin GOARCH=amd64 go build -i -v -o $(DARWIN) -ldflags "-X main.date=$(DATE) -X main.vers=$(VERS) -X main.hash=$(HASH)" ./cmd/$(BIN) + +# $(BIN): $(CODE) +# go build -ldflags "-X main.date=$(DATE) -X main.vers=$(VERS) -X main.hash=$(HASH)" ./cmd/$(BIN) test: go test -cover -coverprofile=coverage.out ./... @@ -27,5 +47,5 @@ push: image docker push $(REPO):$(DATE)-$(VERS)-$(HASH) clean: - -@rm -f $(BIN) + rm -f $(WINDOWS) $(LINUX) $(DARWIN) -@rm -f coverage.out From a39a57331f9003256dad9766f9830edde6bd7350 Mon Sep 17 00:00:00 2001 From: William Markito Date: Tue, 28 Jul 2020 09:18:02 -0500 Subject: [PATCH 2/2] Fix ordering of platforms and set default to linux --- Makefile | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index cd8b0045b..5dd77a498 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,9 @@ REPO := quay.io/boson/faas BIN := faas -WINDOWS=$(BIN)_windows_amd64.exe -LINUX=$(BIN)_linux_amd64 DARWIN=$(BIN)_darwin_amd64 +LINUX=$(BIN)_linux_amd64 +WINDOWS=$(BIN)_windows_amd64.exe CODE := $(shell find . -name '*.go') DATE := $(shell date -u +"%Y%m%dT%H%M%SZ") @@ -11,24 +11,24 @@ HASH := $(shell git rev-parse --short HEAD 2>/dev/null) VTAG := $(shell git tag --points-at HEAD) VERS := $(shell [ -z $(VTAG) ] && echo 'tip' || echo $(VTAG) ) -all: $(WINDOWS) $(LINUX) $(DARWIN) build: all - - -windows: $(WINDOWS) ## Build for Windows - -linux: $(LINUX) ## Build for Linux +all: $(LINUX) +cross-platform: $(DARWIN) $(LINUX) $(WINDOWS) darwin: $(DARWIN) ## Build for Darwin (macOS) -$(WINDOWS): - env GOOS=windows GOARCH=amd64 go build -i -v -o $(WINDOWS) -ldflags "-X main.date=$(DATE) -X main.vers=$(VERS) -X main.hash=$(HASH)" ./cmd/$(BIN) +linux: $(LINUX) ## Build for Linux -$(LINUX): - env GOOS=linux GOARCH=amd64 go build -i -v -o $(LINUX) -ldflags "-X main.date=$(DATE) -X main.vers=$(VERS) -X main.hash=$(HASH)" ./cmd/$(BIN) +windows: $(WINDOWS) ## Build for Windows $(DARWIN): - env GOOS=darwin GOARCH=amd64 go build -i -v -o $(DARWIN) -ldflags "-X main.date=$(DATE) -X main.vers=$(VERS) -X main.hash=$(HASH)" ./cmd/$(BIN) + env GOOS=darwin GOARCH=amd64 go build -v -o $(DARWIN) -ldflags "-X main.date=$(DATE) -X main.vers=$(VERS) -X main.hash=$(HASH)" ./cmd/$(BIN) + +$(LINUX): + env GOOS=linux GOARCH=amd64 go build -v -o $(LINUX) -ldflags "-X main.date=$(DATE) -X main.vers=$(VERS) -X main.hash=$(HASH)" ./cmd/$(BIN) + +$(WINDOWS): + env GOOS=windows GOARCH=amd64 go build -v -o $(WINDOWS) -ldflags "-X main.date=$(DATE) -X main.vers=$(VERS) -X main.hash=$(HASH)" ./cmd/$(BIN) # $(BIN): $(CODE) # go build -ldflags "-X main.date=$(DATE) -X main.vers=$(VERS) -X main.hash=$(HASH)" ./cmd/$(BIN)