-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
build: adjust logic && add more cmds
- Loading branch information
1 parent
1c511ec
commit c90c0f7
Showing
3 changed files
with
64 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,49 +1,65 @@ | ||
.PHONY: all build prepare package clean | ||
|
||
BUILD_OUTPUT_DIR ?= build | ||
BINARY_SUFFIX=$(if $(filter windows,$(GOOS)),.exe) | ||
# Get GOOS and GOARCH from go env | ||
GOOS ?= $(shell go env GOOS) | ||
GOARCH ?= $(shell go env GOARCH) | ||
|
||
BINARIES := bookxnote-local-ocr server certgen | ||
APP_NAME := bookxnote-local-ocr | ||
BINARIES := $(APP_NAME) server certgen | ||
|
||
ifdef GOOS | ||
ifdef GOARCH | ||
PLATFORM_SUFFIX := $(GOOS)-$(GOARCH) | ||
BUILD_OUTPUT_DIR := $(BUILD_OUTPUT_DIR)/bookxnote-local-ocr-$(PLATFORM_SUFFIX) | ||
ARCHIVE_NAME := bookxnote-local-ocr-$(PLATFORM_SUFFIX) | ||
ARCHIVE_EXT := $(if $(filter windows,$(GOOS)),.zip,.tar.gz) | ||
endif | ||
endif | ||
# Set platform suffix and build directory | ||
PLATFORM_SUFFIX := $(GOOS)-$(GOARCH) | ||
BUILD_ROOT := build | ||
BUILD_OUTPUT_DIR := $(BUILD_ROOT)/$(APP_NAME)-$(PLATFORM_SUFFIX) | ||
ARCHIVE_NAME := $(APP_NAME)-$(PLATFORM_SUFFIX) | ||
ARCHIVE_EXT := $(if $(filter windows,$(GOOS)),.zip,.tar.gz) | ||
BINARY_SUFFIX := $(if $(filter windows,$(GOOS)),.exe,) | ||
|
||
all: package | ||
|
||
build: | ||
evalate-linux-build-privilege: | ||
sudo ./$(BUILD_OUTPUT_DIR)/setup-privileges.sh | ||
|
||
generate-gui-resources: | ||
go generate ./cmd/bookxnote-local-ocr/ | ||
|
||
build: generate-gui-resources clean | ||
@echo "building..." | ||
@mkdir -p $(BUILD_OUTPUT_DIR) | ||
@for binary in $(BINARIES); do \ | ||
echo "building $$binary..."; \ | ||
go build -o $(BUILD_OUTPUT_DIR)/$$binary$(BINARY_SUFFIX) cmd/$$binary/main.go; \ | ||
go build -o $(BUILD_OUTPUT_DIR)/$$binary$(BINARY_SUFFIX) ./cmd/$$binary/...; \ | ||
done | ||
@cp artifact/config.yml $(BUILD_OUTPUT_DIR)/ | ||
|
||
prepare: build | ||
@echo "prepare..." | ||
@cp README.md LICENSE $(BUILD_OUTPUT_DIR)/ | ||
@mkdir -p $(BUILD_OUTPUT_DIR)/docs | ||
@cp docs/tutorial.md $(BUILD_OUTPUT_DIR)/docs/tutorial.md | ||
@cp artifact/config.yml $(BUILD_OUTPUT_DIR)/ | ||
@if [ "$(GOOS)" = "windows" ]; then \ | ||
cp artifact/windows/*.bat $(BUILD_OUTPUT_DIR)/; \ | ||
elif [ "$(GOOS)" = "linux" ]; then \ | ||
cp artifact/linux/setup-privileges.sh $(BUILD_OUTPUT_DIR)/; \ | ||
chmod +x $(BUILD_OUTPUT_DIR)/setup-privileges.sh; \ | ||
fi | ||
|
||
package: prepare | ||
@echo "packaging..." | ||
@cd $(dir $(BUILD_OUTPUT_DIR)) && \ | ||
@cd $(BUILD_ROOT) && \ | ||
if [ "$(GOOS)" = "windows" ]; then \ | ||
zip -r $(ARCHIVE_NAME)$(ARCHIVE_EXT) $(notdir $(BUILD_OUTPUT_DIR)); \ | ||
zip -r $(ARCHIVE_NAME)$(ARCHIVE_EXT) $(APP_NAME)-$(PLATFORM_SUFFIX); \ | ||
else \ | ||
tar czf $(ARCHIVE_NAME)$(ARCHIVE_EXT) $(notdir $(BUILD_OUTPUT_DIR)); \ | ||
tar czf $(ARCHIVE_NAME)$(ARCHIVE_EXT) $(APP_NAME)-$(PLATFORM_SUFFIX); \ | ||
fi | ||
@echo "done: $(ARCHIVE_NAME)$(ARCHIVE_EXT)" | ||
|
||
dev-build: prepare evalate-linux-build-privilege | ||
@echo "Done" | ||
|
||
dev-run-gui: dev-build | ||
./build/bookxnote-local-ocr-linux-amd64/bookxnote-local-ocr gui | ||
|
||
clean: | ||
@echo "clean..." | ||
@rm -rf $(BUILD_OUTPUT_DIR) | ||
@rm -rf $(BUILD_ROOT) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
#!/bin/bash | ||
|
||
if [ "$EUID" -ne 0 ]; then | ||
echo "please run this script with sudo!" | ||
exit 1 | ||
fi | ||
|
||
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" | ||
|
||
setcap CAP_NET_BIND_SERVICE=+eip "$SCRIPT_DIR/server" | ||
setcap 'CAP_DAC_OVERRIDE,CAP_SYS_ADMIN+ep' "$SCRIPT_DIR/certgen" | ||
|
||
echo "privileges set successfully" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters