APP:=xnv GOBIN := $(GOPATH)/bin PKGER_BIN := $(GOBIN)/pkger FRONTEND_DIR := ./frontend/build FRONTEND_DEPS := ./frontend/node_modules PLATFORMS = linux darwin windows OUTPUT_DIR := .bin build-all: $(OUTPUT_DIR)/linux/xnv $(OUTPUT_DIR)/windows/xnv.exe clean: @rm -rf ./$(OUTPUT_DIR) ./pkged.go ./xnv clobber: clean @rm -rf $(FRONTEND_DEPS) $(FRONTEND_DIR) .PHONY: clean clobber build $(OUTPUT_DIR)/xnv: pkged.go $(OUTPUT_DIR) go build -ldflags "-r ." -o $(OUTPUT_DIR)/xnv $(OUTPUT_DIR): mkdir -p $(OUTPUT_DIR) $(OUTPUT_DIR)/%: mkdir -p $@ pkged.go: $(PKGER_BIN) $(FRONTEND_DIR) $(PKGER_BIN) -include /frontend/build -o / $(PKGER_BIN): go get github.com/markbates/pkger/cmd/pkger $(FRONTEND_DIR): $(FRONTEND_DEPS) cd frontend && npm run build $(FRONTEND_DEPS): cd frontend && npm install $(OUTPUT_DIR)/windows/xnv.exe: pkged.go $(OUTPUT_DIR)/windows CGO_ENABLED=1 GOOS=windows GOARCH=amd64 CC=x86_64-w64-mingw32-gcc go build -v \ -ldflags "-r=ultralight -H=windowsgui" -o $(OUTPUT_DIR)/windows/$(APP).exe curl https://ultralight-sdk.sfo2.cdn.digitaloceanspaces.com/ultralight-sdk-latest-win-x64.7z \ -o $(OUTPUT_DIR)/windows/ultralight-sdk-latest-win-x64.7z && \ 7zr e -y -o'$(OUTPUT_DIR)/windows/' -i'!./bin/*.dll' -i'!./bin/*.so' -i'!./bin/*.lib' \ $(OUTPUT_DIR)/windows/ultralight-sdk-latest-win-x64.7z $(OUTPUT_DIR)/linux/xnv: pkged.go $(OUTPUT_DIR)/linux CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -v -ldflags "-r=ultralight" -o $(OUTPUT_DIR)/linux/$(APP) curl https://ultralight-sdk.sfo2.cdn.digitaloceanspaces.com/ultralight-sdk-latest-linux-x64.7z \ -o $(OUTPUT_DIR)/linux/ultralight-sdk-latest-linux-x64.7z && \ 7zr e -y -o'$(OUTPUT_DIR)/linux/' -i'!./bin/*.so' \ $(OUTPUT_DIR)/linux/ultralight-sdk-latest-linux-x64.7z ultralight/linux: mkdir -p $(OUTPUT_DIR)/linux/ultralight curl https://ultralight-sdk.sfo2.cdn.digitaloceanspaces.com/ultralight-sdk-latest-linux-x64.7z \ -o $(OUTPUT_DIR)/linux/ultralight-sdk-latest-linux-x64.7z && \ 7zr e -o'$(OUTPUT_DIR)/linux/ultralight' -i'!./bin/*.so' \ $(OUTPUT_DIR)/linux/ultralight-sdk-latest-linux-x64.7z ultralight/darwin: mkdir -p $(OUTPUT_DIR)/darwin/ultralight curl https://ultralight-sdk.sfo2.cdn.digitaloceanspaces.com/ultralight-sdk-latest-mac-x64.7z \ -o $(OUTPUT_DIR)/darwin/ultralight-sdk-latest-mac-x64.7z && \ 7zr e -o'$(OUTPUT_DIR)/darwin/ultralight' -i'!./bin/*.so' \ $(OUTPUT_DIR)/darwin/ultralight-sdk-latest-mac-x64.7z