bbgo_origin/Makefile

146 lines
4.9 KiB
Makefile
Raw Normal View History

2020-11-11 08:34:20 +00:00
TARGET_ARCH ?= amd64
BUILD_DIR ?= build
BIN_DIR := $(BUILD_DIR)/bbgo
DIST_DIR ?= dist
2021-05-07 10:15:00 +00:00
GIT_DESC := $(shell git describe --tags)
2020-11-11 08:34:20 +00:00
2021-05-07 10:15:00 +00:00
VERSION ?= $(shell git describe --tags)
2021-05-07 06:10:22 +00:00
2021-02-14 17:54:17 +00:00
OSX_APP_NAME = BBGO.app
OSX_APP_DIR = build/$(OSX_APP_NAME)
OSX_APP_CONTENTS_DIR = $(OSX_APP_DIR)/Contents
OSX_APP_RESOURCES_DIR = $(OSX_APP_CONTENTS_DIR)/Resources
2021-02-17 11:06:35 +00:00
OSX_APP_CODESIGN_IDENTITY ?=
2021-02-18 07:32:41 +00:00
# OSX_APP_GUI ?= lorca
OSX_APP_GUI ?= webview
2021-02-17 09:54:26 +00:00
2021-02-15 08:21:08 +00:00
FRONTEND_EXPORT_DIR = frontend/out
2021-02-19 02:18:03 +00:00
all: bbgo-linux bbgo-darwin
2021-02-15 08:25:49 +00:00
2020-11-11 08:34:20 +00:00
$(BIN_DIR):
mkdir -p $@
# build native bbgo
bbgo:
go build -tags web,release -o $(BIN_DIR)/$@ ./cmd/bbgo
# build native bbgo (slim version)
bbgo-slim:
go build -tags release -o $(BIN_DIR)/$@ ./cmd/bbgo
# build cross-compile linux bbgo
2021-05-07 09:58:28 +00:00
bbgo-linux: bbgo-linux-amd64 bbgo-linux-arm64
bbgo-linux-amd64: $(BIN_DIR)
GOOS=linux GOARCH=amd64 go build -tags web,release -o $(BIN_DIR)/$@ ./cmd/bbgo
bbgo-linux-arm64: $(BIN_DIR)
GOOS=linux GOARCH=arm64 go build -tags web,release -o $(BIN_DIR)/$@ ./cmd/bbgo
2020-11-11 08:34:20 +00:00
# build cross-compile linux bbgo (slim version)
bbgo-slim-linux: bbgo-slim-linux-amd64 bbgo-slim-linux-arm64
bbgo-slim-linux-amd64: $(BIN_DIR)
GOOS=linux GOARCH=amd64 go build -tags release -o $(BIN_DIR)/$@ ./cmd/bbgo
bbgo-slim-linux-arm64: $(BIN_DIR)
GOOS=linux GOARCH=arm64 go build -tags release -o $(BIN_DIR)/$@ ./cmd/bbgo
bbgo-darwin: bbgo-darwin-arm64 bbgo-darwin-amd64
bbgo-darwin-arm64: $(BIN_DIR)
GOOS=darwin GOARCH=arm64 go build -tags web,release -o $(BIN_DIR)/$@ ./cmd/bbgo
bbgo-darwin-amd64: $(BIN_DIR)
GOOS=darwin GOARCH=amd64 go build -tags web,release -o $(BIN_DIR)/$@ ./cmd/bbgo
bbgo-slim-darwin-arm64: $(BIN_DIR)
GOOS=darwin GOARCH=arm64 go build -tags release -o $(BIN_DIR)/$@ ./cmd/bbgo
bbgo-slim-darwin-amd64: $(BIN_DIR)
GOOS=darwin GOARCH=amd64 go build -tags release -o $(BIN_DIR)/$@ ./cmd/bbgo
bbgo-slim-darwin: bbgo-slim-darwin-amd64 bbgo-slim-darwin-arm64
2020-11-11 08:34:20 +00:00
2021-02-15 08:27:38 +00:00
2020-11-11 08:34:20 +00:00
clean:
2021-02-15 08:21:08 +00:00
rm -rf $(BUILD_DIR) $(DIST_DIR) $(FRONTEND_EXPORT_DIR)
2020-11-11 08:34:20 +00:00
2021-02-14 17:54:17 +00:00
$(OSX_APP_CONTENTS_DIR):
mkdir -p $@
$(OSX_APP_CONTENTS_DIR)/MacOS: $(OSX_APP_CONTENTS_DIR)
mkdir -p $@
$(OSX_APP_RESOURCES_DIR): $(OSX_APP_CONTENTS_DIR)
mkdir -p $@
$(OSX_APP_RESOURCES_DIR)/icon.icns: $(OSX_APP_RESOURCES_DIR)
cp -v desktop/icons/icon.icns $@
$(OSX_APP_CONTENTS_DIR)/Info.plist: $(OSX_APP_CONTENTS_DIR)
bash desktop/build-osx-info-plist.sh > $@
$(OSX_APP_CONTENTS_DIR)/MacOS/bbgo-desktop: $(OSX_APP_CONTENTS_DIR)/MacOS .FORCE
2021-02-18 00:51:15 +00:00
go build -tags web -o $@ ./cmd/bbgo-$(OSX_APP_GUI)
2021-02-14 17:54:17 +00:00
2021-02-15 08:21:08 +00:00
desktop-osx: $(OSX_APP_CONTENTS_DIR)/MacOS/bbgo-desktop $(OSX_APP_CONTENTS_DIR)/Info.plist $(OSX_APP_RESOURCES_DIR)/icon.icns
2021-02-18 07:32:41 +00:00
if [[ -n "$(OSX_APP_CODESIGN_IDENTITY)" ]] ; then codesign --deep --force --verbose --sign "$(OSX_APP_CODESIGN_IDENTITY)" $(OSX_APP_DIR) \
&& codesign --verify -vvvv $(OSX_APP_DIR) ; fi
2021-02-14 17:54:17 +00:00
2021-02-15 08:21:08 +00:00
desktop: desktop-osx
2021-02-14 17:54:17 +00:00
2021-05-07 10:15:00 +00:00
$(DIST_DIR)/$(VERSION):
mkdir -p $(DIST_DIR)/$(VERSION)
2021-03-01 04:07:00 +00:00
2021-05-07 11:16:02 +00:00
$(DIST_DIR)/$(VERSION)/bbgo-$(VERSION)-linux-amd64.tar.gz $(DIST_DIR)/$(VERSION)/bbgo-$(VERSION)-darwin-amd64.tar.gz $(DIST_DIR)/$(VERSION)/bbgo-$(VERSION)-linux-arm64.tar.gz $(DIST_DIR)/$(VERSION)/bbgo-$(VERSION)-darwin-arm64.tar.gz: $(DIST_DIR)/$(VERSION)
$(eval BIN_SUFFIX := $(subst bbgo-$(VERSION)-,,$(basename $(basename $(notdir $@)))))
$(eval BIN_NAME := $(subst $(VERSION)-,,$(basename $(basename $(notdir $@)))))
$(MAKE) bbgo-$(BIN_SUFFIX)
$(MAKE) bbgo-slim-$(BIN_SUFFIX)
tar -C $(BIN_DIR) -cvzf $@ $(BIN_NAME)
2021-05-07 11:16:02 +00:00
ifeq ($(SIGN),1)
2021-05-07 10:49:36 +00:00
gpg --yes --detach-sign --armor $@
2021-05-07 11:16:02 +00:00
endif
2021-05-07 10:15:00 +00:00
dist-bbgo-linux: static $(DIST_DIR)/$(VERSION)/bbgo-$(VERSION)-linux-arm64.tar.gz $(DIST_DIR)/$(VERSION)/bbgo-$(VERSION)-linux-amd64.tar.gz
2021-05-07 10:15:00 +00:00
dist-bbgo-darwin: static $(DIST_DIR)/$(VERSION)/bbgo-$(VERSION)-darwin-arm64.tar.gz $(DIST_DIR)/$(VERSION)/bbgo-$(VERSION)-darwin-amd64.tar.gz
dist: dist-bbgo-linux dist-bbgo-darwin desktop
2021-05-07 06:44:42 +00:00
2021-03-21 02:16:27 +00:00
pkg/version/version.go: .FORCE
2021-02-22 07:16:12 +00:00
bash utils/generate-version-file.sh > $@
2021-05-07 06:10:22 +00:00
version: pkg/version/version.go migrations
2021-05-07 06:16:21 +00:00
git commit $< -m "bump version to $(VERSION)" || true
2021-05-07 06:10:22 +00:00
git tag -f $(VERSION)
2021-02-22 07:16:12 +00:00
2021-01-15 02:31:37 +00:00
migrations:
2021-02-06 01:51:11 +00:00
rockhopper compile --config rockhopper_mysql.yaml --output pkg/migrations/mysql
rockhopper compile --config rockhopper_sqlite.yaml --output pkg/migrations/sqlite3
2021-05-07 06:16:21 +00:00
(git add -v pkg/migrations && git commit -m "compile and update migration package" pkg/migrations) || true
2021-01-15 02:31:37 +00:00
docker:
GOPATH=$(PWD)/_mod go mod download
docker build --build-arg GO_MOD_CACHE=_mod --tag yoanlin/bbgo .
2020-12-17 08:19:31 +00:00
bash -c "[[ -n $(DOCKER_TAG) ]] && docker tag yoanlin/bbgo yoanlin/bbgo:$(DOCKER_TAG)"
2020-12-17 08:32:16 +00:00
docker-push:
docker push yoanlin/bbgo
bash -c "[[ -n $(DOCKER_TAG) ]] && docker push yoanlin/bbgo:$(DOCKER_TAG)"
2021-02-14 18:16:00 +00:00
frontend/out/index.html: .FORCE
(cd frontend && yarn export)
2021-02-04 12:30:51 +00:00
2021-02-15 08:21:08 +00:00
pkg/server/assets.go: frontend/out/index.html .FORCE
go run ./util/embed -package server -output $@ $(FRONTEND_EXPORT_DIR)
2021-02-15 08:21:08 +00:00
embed: pkg/server/assets.go
2021-02-04 10:22:47 +00:00
2021-02-15 08:21:08 +00:00
static: frontend/out/index.html pkg/server/assets.go
2021-05-07 06:44:42 +00:00
.PHONY: bbgo bbgo-slim-darwin bbgo-slim-darwin-amd64 bbgo-slim-darwin-arm64 bbgo-darwin version dist pack migrations static embed desktop .FORCE