xnv/makefile

66 lines
2.4 KiB
Makefile

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
.SHELLARGS = -eou pipefail
build-all: $(OUTPUT_DIR)/linux/xnv $(OUTPUT_DIR)/windows/xnv.exe $(OUTPUT_DIR)/darwin/xnv
linux: $(OUTPUT_DIR)/linux/xnv
darwin: $(OUTPUT_DIR)/darwin/xnv
windows: $(OUTPUT_DIR)/windows/xnv.exe
clean:
@rm -rf ./$(OUTPUT_DIR) ./pkged.go ./xnv $(FRONTEND_DIR)
clobber: clean
@rm -rf $(FRONTEND_DEPS)
.PHONY: clean clobber build-all darwin linux windows
$(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
$(OUTPUT_DIR)/darwin/xnv: pkged.go $(OUTPUT_DIR)/darwin
CGO_ENABLED=1 GOOS=darwin GOARCH=amd64 go build -v -ldflags="-r ." -o $(OUTPUT_DIR)/darwin/$(APP)
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 -y -o'$(OUTPUT_DIR)/darwin/' -i'!./bin/*.dylib' \
$(OUTPUT_DIR)/darwin/ultralight-sdk-latest-mac-x64.7z
@echo 'to run do:'
@echo 'LD_LIBRARY_PATH=$$PWD/.bin/darwin .bin/darwin/xnv'