Files
Link-Log/Makefile
T
2026-08-25 09:30:56 +02:00

63 lines
2.1 KiB
Makefile

# Copyright © 2026 Olaf Kolkman
# SPDX-License-Identifier: GPL-3.0-or-later
SHELL := /bin/sh
SOURCE_LOGO := LinkLog.svg
MAGICK ?= magick
WEB_LOGO := frontend/static/logo.svg
EXTENSION_LOGO := webextension/logo.svg
ICON_FILES := webextension/icon-16.png webextension/icon-32.png webextension/icon-48.png webextension/icon-96.png
GENERATED_LOGOS := $(WEB_LOGO) $(EXTENSION_LOGO) $(ICON_FILES)
EXTENSION_VERSION := $(shell sed -n 's/^[[:space:]]*"version":[[:space:]]*"\([^"]*\)".*/\1/p' webextension/manifest.json | head -n 1)
XPI_FILE := LinkLog-$(EXTENSION_VERSION).xpi
XPI_UNSIGNED_DIR := XPI/unsigned
XPI_SIGNED_DIR := XPI/signed
XPI_OUTPUT := $(XPI_UNSIGNED_DIR)/$(XPI_FILE)
EXTENSION_FILES := manifest.json logo.svg icon-16.png icon-32.png icon-48.png icon-96.png options.css options.html options.js popup.css popup.html popup.js
.PHONY: all logos xpi check-tools clean-generated
all: logos
logos: check-tools $(GENERATED_LOGOS)
xpi: logos
@test -n "$(EXTENSION_VERSION)" || { echo "Error: extension version is missing from webextension/manifest.json" >&2; exit 1; }
@mkdir -p $(XPI_UNSIGNED_DIR) $(XPI_SIGNED_DIR)
@rm -f $(XPI_OUTPUT)
@cd webextension && zip -q -9 "../$(XPI_OUTPUT)" $(EXTENSION_FILES)
@python3 scripts/release/validate_xpi.py "$(XPI_OUTPUT)" webextension/manifest.json
@echo "Created $(XPI_OUTPUT)"
check-tools:
@command -v $(MAGICK) >/dev/null 2>&1 || { echo "Error: ImageMagick '$(MAGICK)' is required. Install ImageMagick and retry." >&2; exit 1; }
$(WEB_LOGO): $(SOURCE_LOGO)
@mkdir -p $(@D)
@cp $< $@
$(EXTENSION_LOGO): $(SOURCE_LOGO)
@mkdir -p $(@D)
@cp $< $@
webextension/icon-16.png: $(SOURCE_LOGO)
@mkdir -p $(@D)
@$(MAGICK) $< -resize 16x16 -gravity center -extent 16x16 $@
webextension/icon-32.png: $(SOURCE_LOGO)
@mkdir -p $(@D)
@$(MAGICK) $< -resize 32x32 -gravity center -extent 32x32 $@
webextension/icon-48.png: $(SOURCE_LOGO)
@mkdir -p $(@D)
@$(MAGICK) $< -resize 48x48 -gravity center -extent 48x48 $@
webextension/icon-96.png: $(SOURCE_LOGO)
@mkdir -p $(@D)
@$(MAGICK) $< -resize 96x96 -gravity center -extent 96x96 $@
clean-generated:
@rm -f $(GENERATED_LOGOS)