build/common.mk
Rama master · réplica de lectura del repositorio original.
include build/source-files.mk
PROFILE = release
# rustfmt runs in a container pinned to a specific nightly (our rustfmt.toml uses
# nightly-only options); prettier and taplo are pinned via npm and run natively.
# Set FMT_NATIVE=1 to run rustfmt on the host instead.
FMT := ./build/fmt/run-fmt.sh
PLATFORM_FILE := $(shell ./build/env/check-platform.sh)
ENVIRONMENT_FILE := $(shell ./build/env/check-environment.sh)
GIT_HASH_FILE := $(shell ./build/env/check-git-hash.sh)
VERSION_FILE := $(shell ./build/env/check-version.sh)
BASENAME := $(shell PROJECT=startos ./build/env/basename.sh)
PLATFORM := $(shell if [ -f $(PLATFORM_FILE) ]; then cat $(PLATFORM_FILE); else echo unknown; fi)
ARCH := $(shell if [ "$(PLATFORM)" = "raspberrypi" ]; then echo aarch64; elif [ "$(PLATFORM)" = "rockchip64" ]; then echo aarch64; else echo $(PLATFORM) | sed 's/-nonfree$$//g; s/-nvidia$$//g'; fi)
RUST_ARCH := $(shell if [ "$(ARCH)" = "riscv64" ]; then echo riscv64gc; else echo $(ARCH); fi)
REGISTRY_BASENAME := $(shell PROJECT=start-registry PLATFORM=$(ARCH) ./build/env/basename.sh)
TUNNEL_BASENAME := $(shell PROJECT=start-tunnel PLATFORM=$(ARCH) ./build/env/basename.sh)
CLI_BASENAME := $(shell PROJECT=start-cli PLATFORM=$(ARCH) ./build/env/basename.sh)
RUST_BUILDER_INPUTS := build/rust-builder/image.sh build/rust-builder/repository build/rust-builder/reference
# Every Rust binary tracks its transitive path dependencies.
BACKUP_PROTOCOL_SRC := $(call ls-files, shared-libs/crates/backup-fs-protocol)
CORE_SRC := $(call ls-files, shared-libs/crates/start-core) $(BACKUP_PROTOCOL_SRC) \
$(call ls-files, shared-libs/crates/exver) \
$(call ls-files, shared-libs/crates/imbl-value) \
$(call ls-files, shared-libs/crates/jsonpath) \
$(call ls-files, shared-libs/crates/rpc-toolkit) \
$(call ls-files, shared-libs/crates/visit-rs) \
$(call ls-files, shared-libs/crates/visit-rs-derive) \
$(call ls-files, shared-libs/crates/yasi) \
$(call ls-files, shared-libs/crates/patch-db) build/builder-alias.sh $(RUST_BUILDER_INPUTS) $(GIT_HASH_FILE)
PATCH_DB_CLIENT_SRC := $(call ls-files, shared-libs/crates/patch-db/client)
GZIP_BIN := $(shell which pigz || which gzip)
TAR_BIN := $(shell which gtar || which tar)
ifeq ($(REMOTE),)
mkdir = mkdir -p $1
rm = rm -rf $1
cp = cp -r $1 $2
ln = ln -sf $1 $2
else
ifeq ($(SSHPASS),)
ssh = ssh $(REMOTE) $1
else
ssh = sshpass -p $(SSHPASS) ssh $(REMOTE) $1
endif
mkdir = $(call ssh,'sudo mkdir -p $1')
rm = $(call ssh,'sudo rm -rf $1')
ln = $(call ssh,'sudo ln -sf $1 $2')
define cp
$(TAR_BIN) --transform "s|^$1|x|" -czv -f- $1 | $(call ssh,"sudo tar --transform 's|^x|$2|' -xzv -f- -C /")
endef
endif
define install-bash-completion
$(call mkdir,$(DESTDIR)/usr/share/bash-completion/completions)
$(call cp,build/bash-completion,$(DESTDIR)/usr/share/bash-completion/completions/$1)
endef
.DELETE_ON_ERROR:
shared-libs/crates/patch-db/client/node_modules/.package-lock.json: shared-libs/crates/patch-db/client/package.json
npm --prefix shared-libs/crates/patch-db/client ci
touch shared-libs/crates/patch-db/client/node_modules/.package-lock.json
shared-libs/crates/patch-db/client/dist/index.js: $(PATCH_DB_CLIENT_SRC) shared-libs/crates/patch-db/client/node_modules/.package-lock.json
rm -rf shared-libs/crates/patch-db/client/dist
npm --prefix shared-libs/crates/patch-db/client run build
touch shared-libs/crates/patch-db/client/dist/index.js