66 lines
2.4 KiB
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'
|