# Makefile for building the Go project # Project settings BINARY_NAME=p4ork LINUX_BINARY=$(BINARY_NAME) WINDOWS_BINARY=$(BINARY_NAME).exe # Go related variables. GOBASE=$(shell pwd) GOPATH="$(GOBASE)/vendor:$(GOBASE)" GOBIN=$(GOBASE)/bin GOFILES=$(wildcard *.go) # Go commands GOCMD=go GOBUILD=$(GOCMD) build GOCLEAN=$(GOCMD) clean GORUN=$(GOCMD) run # Build targets .PHONY: all build-linux build-windows clean run all: build-linux build-windows build-linux: @echo "Building for Linux..." @GOOS=linux GOARCH=amd64 $(GOBUILD) -o $(GOBIN)/$(LINUX_BINARY) $(GOFILES) build-windows: @echo "Building for Windows..." @GOOS=windows GOARCH=amd64 $(GOBUILD) -o $(GOBIN)/$(WINDOWS_BINARY) $(GOFILES) clean: @$(GOCLEAN) @rm -f $(GOBIN)/$(LINUX_BINARY) @rm -f $(GOBIN)/$(WINDOWS_BINARY) run: @$(GORUN) $(GOFILES)