.DEFAULT_GOAL=help BINARY_NAME := iptvc GOARCH ?= amd64 LINUX_PATH := "bin/linux_$(GOARCH)" WINDOWS_PATH := "bin/windows_$(GOARCH)" DARWIN_PATH := "bin/darwin_$(GOARCH)" LINUX_FILE := "$(LINUX_PATH)/$(BINARY_NAME)" WINDOWS_FILE := "$(WINDOWS_PATH)/$(BINARY_NAME).exe" DARWIN_FILE := "$(DARWIN_PATH)/$(BINARY_NAME)" ## clean: Remove all compiled binaries clean: @go clean @rm -rf bin/ ## linux: Build new binaries for linux linux: @rm -rf $(LINUX_PATH) @GOARCH=$(GOARCH) GOOS=linux go build -o $(LINUX_FILE) . && echo "Compiled: $(LINUX_FILE)" ## win: Build new binaries for windows win: @rm -rf $(WINDOWS_PATH) @GOARCH=$(GOARCH) GOOS=windows go build -o $(WINDOWS_FILE) . && echo "Compiled: $(WINDOWS_FILE)" ## darwin: Build new binaries for darwin darwin: @rm -rf $(DARWIN_PATH) @GOARCH=$(GOARCH) GOOS=darwin go build -o $(DARWIN_FILE) . && echo "Compiled: $(DARWIN_FILE)" ## all: Build new binaries for linux, windows and darwin all: clean linux win darwin ## release: Build all binaries and zip them release: linux win darwin @zip -j $(LINUX_PATH).zip $(LINUX_FILE) @zip -j $(DARWIN_PATH).zip $(DARWIN_FILE) @zip -j $(WINDOWS_PATH).zip $(WINDOWS_FILE) ## help: Show this message and exit help: Makefile @echo "Available recipes:" @sed -n 's/^##//p' $< | column -t -s ':' | sed -e 's/^/ /'