ARCH ?= $(shell flatpak --default-arch) BOOTSTRAP_ARCH ?= $(shell flatpak --default-arch) GIT ?= git BST ?= bst BST_ARGS ?= _BST_ARGS ?= --no-interactive -o arch $(ARCH) -o bootstrap_build_arch $(BOOTSTRAP_ARCH) OSTREE ?= ostree CACHEDIR ?= cache REPO ?= repo GPG_KEY = 9A0495AF96828F9D5E032C46A9A60744BCE3F878 # EXPORT_ARGS ?= --gpg-sign=${GPG_KEY} --gpg-homedir=gpg EXPORT_ARGS ?= RSYNC_HOST ?= software.igalia.com RSYNC_REMOTE_DIR ?= /var/www/software/webkit-sdk-repo FLATPAK_RUNTIMES_REPO = $(CACHEDIR)/flatpak-runtimes-repo FLATPAK_PLATFORM_EXTENSIONS_REPO = $(CACHEDIR)/flatpak-platform-extensions-repo EXPORT_REPO = $(REPO) EXPORT_REFS = $(shell [ -d "$(EXPORT_REPO)" ] && $(OSTREE) refs --repo $(EXPORT_REPO)) all: export clean: if [ -d "$(CACHEDIR)" ]; then rmdir $(CACHEDIR); fi if [ -d "$(EXPORT_REPO)" ]; then rm -r $(EXPORT_REPO); fi .PHONY: clean export: | $(EXPORT_REPO) ifneq ($(EXPORT_ARGS),) flatpak build-sign $(EXPORT_ARGS) $| endif flatpak build-update-repo --generate-static-deltas $(EXPORT_ARGS) $| .PHONY: export fetch-junctions: $(BST) $(BST_ARGS) $(_BST_ARGS) fetch freedesktop-sdk.bst .PHONY: fetch-junctions track: $(BST) $(BST_ARGS) $(_BST_ARGS) track freedesktop-sdk.bst $(BST) $(BST_ARGS) $(_BST_ARGS) track flatpak-runtimes.bst flatpak-platform-extensions.bst --deps=all .PHONY: track $(CACHEDIR): mkdir -p $@ $(EXPORT_REPO): $(OSTREE) init --repo=$@ --mode=archive .git/hooks/pre-commit: utils/git-pre-commit ln -frs $< .git/hooks/pre-commit flatpak-version.yml: $(GIT_HOOKS) | CLEAN-flatpak-version.yml ./utils/generate-version $@ .PHONY: flatpak-version.yml CLEAN-flatpak-version.yml: rm -f flatpak-version.yml .PHONY: CLEAN-flatpak-version.yml clean: CLEAN-flatpak-version.yml BUILD-flatpak-runtimes: flatpak-version.yml elements/**/*.bst $(BST) $(BST_ARGS) $(_BST_ARGS) build flatpak-runtimes.bst .PHONY: BUILD-flatpak-runtimes CHECK-flatpak-runtimes: flatpak-version.yml | fetch-junctions $(BST) $(BST_ARGS) $(_BST_ARGS) show flatpak-runtimes.bst .PHONY: CHECK-flatpak-runtimes check: CHECK-flatpak-runtimes $(FLATPAK_RUNTIMES_REPO): BUILD-flatpak-runtimes | $(CACHEDIR) $(BST) $(BST_ARGS) $(_BST_ARGS) checkout --hardlinks --force flatpak-runtimes.bst $@ EXPORT-$(FLATPAK_RUNTIMES_REPO): $(FLATPAK_RUNTIMES_REPO) | $(EXPORT_REPO) $(OSTREE) pull-local --repo=$| $< .PHONY: EXPORT-$(FLATPAK_RUNTIMES_REPO) export: EXPORT-$(FLATPAK_RUNTIMES_REPO) CLEAN-$(FLATPAK_RUNTIMES_REPO): rm -rf $(FLATPAK_RUNTIMES_REPO) .PHONY: CLEAN-$(FLATPAK_RUNTIMES_REPO) clean: CLEAN-$(FLATPAK_RUNTIMES_REPO) BUILD-flatpak-platform-extensions: elements/**/*.bst $(BST) $(BST_ARGS) $(_BST_ARGS) build flatpak-platform-extensions.bst .PHONY: BUILD-flatpak-platform-extensions CHECK-flatpak-platform-extensions: | fetch-junctions $(BST) $(BST_ARGS) $(_BST_ARGS) show flatpak-platform-extensions.bst .PHONY: CHECK-flatpak-platform-extensions check: CHECK-flatpak-platform-extensions $(FLATPAK_PLATFORM_EXTENSIONS_REPO): BUILD-flatpak-platform-extensions | $(CACHEDIR) $(BST) $(BST_ARGS) $(_BST_ARGS) checkout --hardlinks --force flatpak-platform-extensions.bst $@ EXPORT-$(FLATPAK_PLATFORM_EXTENSIONS_REPO): $(FLATPAK_PLATFORM_EXTENSIONS_REPO) | $(EXPORT_REPO) $(OSTREE) pull-local --repo=$| $< .PHONY: EXPORT-$(FLATPAK_PLATFORM_EXTENSIONS_REPO) export: EXPORT-$(FLATPAK_PLATFORM_EXTENSIONS_REPO) CLEAN-$(FLATPAK_PLATFORM_EXTENSIONS_REPO): rm -rf $(FLATPAK_PLATFORM_EXTENSIONS_REPO) .PHONY: CLEAN-$(FLATPAK_PLATFORM_EXTENSIONS_REPO) clean: CLEAN-$(FLATPAK_PLATFORM_EXTENSIONS_REPO) pull-repo: ./ostree-releng-scripts/rsync-repos --rsync-opts="-vz" --src ${RSYNC_HOST}:${RSYNC_REMOTE_DIR}/ --dest ${REPO} push-repo: ./ostree-releng-scripts/rsync-repos --rsync-opts="-vz" --src ${REPO}/ --dest ${RSYNC_HOST}:${RSYNC_REMOTE_DIR} dry-push-repo: ./ostree-releng-scripts/rsync-repos --rsync-opts="-vzn" --src ${REPO}/ --dest ${RSYNC_HOST}:${RSYNC_REMOTE_DIR}