aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile26
1 files changed, 24 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index a2f491a9..fd759f30 100644
--- a/Makefile
+++ b/Makefile
@@ -16,6 +16,8 @@
# make compile - Byte-compile all modules
# make compile-file FILE= - Byte-compile one file with the project load path
# make lint - Run all linters (checkdoc, package-lint, elisp-lint)
+# make bootstrap - Install every package headlessly (fresh machine)
+# make telega-image - Build the telega-server container image
# make profile - Profile Emacs startup performance
# make clean - Remove test artifacts and compiled files
# make clean-compiled - Remove .elc/.eln files only
@@ -32,8 +34,13 @@ EMACS_HOME = $(HOME)/.emacs.d
OUT ?= themes
# Test files
+# NOTE: filter-out takes make patterns, where % is the wildcard; $(wildcard ...)
+# takes a shell glob, where % is a literal character and * is the wildcard. The
+# two are not interchangeable. INTEGRATION_TESTS used a % here and so expanded
+# to nothing, which silently skipped every integration test in `make test' while
+# it still printed ALL TESTS COMPLETE.
UNIT_TESTS = $(filter-out $(TEST_DIR)/test-integration-%.el, $(wildcard $(TEST_DIR)/test-*.el))
-INTEGRATION_TESTS = $(wildcard $(TEST_DIR)/test-integration-%.el)
+INTEGRATION_TESTS = $(wildcard $(TEST_DIR)/test-integration-*.el)
ALL_TESTS = $(UNIT_TESTS) $(INTEGRATION_TESTS)
BASH_TESTS = $(wildcard $(TEST_DIR)/*.bats)
@@ -49,7 +56,7 @@ EMACS_TEST = $(EMACS_BATCH) -L $(TEST_DIR) -L $(MODULE_DIR)
.PHONY: help targets test test-all test-unit test-integration test-file test-name \
test-bash theme-studio-test theme-studio-check theme-studio-coverage theme-studio-gen theme-studio-open theme-studio-theme theme-studio-theme-load theme-studio-theme-reload deploy-wip \
benchmark coverage coverage-summary coverage-clean \
- validate-parens validate-modules compile compile-file lint profile \
+ validate-parens validate-modules compile compile-file lint bootstrap telega-image profile \
task-sorted \
clean clean-compiled clean-tests reset
@@ -95,6 +102,8 @@ help:
@echo " make lint - Run all linters (checkdoc, package-lint, elisp-lint)"
@echo ""
@echo " Utilities:"
+ @echo " make bootstrap - Install every package headlessly (fresh machine)"
+ @echo " make telega-image - Build the telega-server container image"
@echo " make profile - Profile Emacs startup performance"
@echo " make clean - Remove test artifacts and compiled files"
@echo " make clean-compiled - Remove .elc/.eln files only"
@@ -447,6 +456,19 @@ lint:
# Utility Targets
# ============================================================================
+bootstrap:
+ @bash scripts/bootstrap-packages.sh
+
+# telega-server container image. Built locally from a digest-pinned upstream
+# base plus the library upstream forgot (see docker/telega-server/Dockerfile).
+# The tag here is the source of truth: `cj/telega-docker-image' in
+# modules/telega-config.el must name the same one, and a test holds them equal.
+TELEGA_IMAGE = cj/telega-server:1.8.66-glycin
+
+telega-image:
+ @docker build -t $(TELEGA_IMAGE) docker/telega-server
+ @echo "built $(TELEGA_IMAGE)"
+
profile:
@echo "Profiling Emacs startup..."
@if [ -f "$(EMACS_HOME)/early-init.el" ]; then \