2022-05-26 20:20:06 +02:00
|
|
|
SRCDIR := $(abspath $(lastword $(MAKEFILE_LIST))/../..)
|
|
|
|
FONTDIR := ../build/fonts
|
2023-09-27 02:10:58 +02:00
|
|
|
BIN := $(SRCDIR)/build/venv/bin
|
|
|
|
VENV := ../build/venv/bin/activate
|
2023-11-18 20:47:31 +01:00
|
|
|
Q = $(if $(filter 1,$(V) $(VERBOSE)),,@) # make V=1 for verbose mode
|
2022-05-26 20:20:06 +02:00
|
|
|
export PATH := $(BIN):$(PATH)
|
|
|
|
|
2023-09-27 02:10:58 +02:00
|
|
|
HTTP_SERVER_BIND_ADDR ?= 127.0.0.1
|
|
|
|
|
2022-05-26 20:20:06 +02:00
|
|
|
default:
|
2023-09-27 02:10:58 +02:00
|
|
|
@echo "Please specify a target: build, serve, dist" >&2
|
2022-05-26 20:20:06 +02:00
|
|
|
|
2022-09-29 21:10:43 +02:00
|
|
|
build: .ruby-bundle
|
2022-05-26 20:20:06 +02:00
|
|
|
rm -rf _site
|
|
|
|
bundle exec jekyll build
|
|
|
|
|
2023-09-27 02:10:58 +02:00
|
|
|
build-tmp: .ruby-bundle
|
|
|
|
rm -rf _site-tmp
|
|
|
|
bundle exec jekyll build --disable-disk-cache -b /tmp/inter-v4-website/ -d _site-tmp
|
2023-09-11 21:56:51 +02:00
|
|
|
|
2022-09-29 21:10:43 +02:00
|
|
|
serve: .ruby-bundle
|
2023-11-18 20:47:31 +01:00
|
|
|
$(Q)if [ ! -s lab/fonts ]; then \
|
2023-09-27 02:10:58 +02:00
|
|
|
[ ! -s lab/fonts/fonts ] || rm lab/fonts/fonts; \
|
|
|
|
rm -f lab/fonts && ln -fs ../../build/fonts lab/fonts; \
|
|
|
|
fi
|
|
|
|
@# need to delete generated content so that jekyll, being a little dumb,
|
|
|
|
@# can manage to copy the font files into there again.
|
|
|
|
@# Why not a symlink you ask? Jekyll traverses it and copies the content.
|
|
|
|
@# In the past we tried to work around this by periodically removing the
|
|
|
|
@# copied font files and re-creating the symlink, but it was a frail process.
|
|
|
|
@# For live testing with fonts, you'll instead want to use docs/lab/serve.py
|
2023-11-18 20:47:31 +01:00
|
|
|
$(Q)rm -rf _site
|
|
|
|
$(Q)bundle exec jekyll serve -b / --watch \
|
2023-09-27 02:10:58 +02:00
|
|
|
--config _config.yml,_config-dev.yml \
|
|
|
|
--host $(HTTP_SERVER_BIND_ADDR) --port 3002 \
|
|
|
|
--livereload --livereload-port 30002
|
|
|
|
|
|
|
|
serve-pub:
|
|
|
|
exec $(MAKE) HTTP_SERVER_BIND_ADDR=0.0.0.0 serve
|
|
|
|
|
|
|
|
optimize-images:
|
2023-11-18 20:47:31 +01:00
|
|
|
$(Q)for f in $$(find . -type f -name \*.png); do \
|
|
|
|
echo optipng "$$f"; \
|
2023-09-27 02:10:58 +02:00
|
|
|
optipng -quiet "$$f" & \
|
|
|
|
done ; \
|
|
|
|
wait
|
2022-05-26 20:20:06 +02:00
|
|
|
|
2022-09-29 21:10:43 +02:00
|
|
|
.ruby-bundle: Gemfile Gemfile.lock
|
|
|
|
@if ! (command -v bundle >/dev/null && command -v jekyll >/dev/null); then \
|
|
|
|
echo "Please install Ruby bundle and jekyll: gem install bundler jekyll" >&2; \
|
|
|
|
exit 1; \
|
|
|
|
fi
|
|
|
|
bundle update
|
|
|
|
bundle install
|
|
|
|
touch .ruby-bundle
|
|
|
|
|
2022-05-26 20:20:06 +02:00
|
|
|
# -----------------------------------------------------------------------
|
|
|
|
|
2023-11-18 20:47:31 +01:00
|
|
|
dist: info lab/index.html
|
|
|
|
info: fonts _data/fontinfo.json lab/glyphinfo.json
|
|
|
|
fonts: font-files/Inter-Regular.woff2
|
2022-05-26 20:20:06 +02:00
|
|
|
|
2023-11-19 03:02:21 +01:00
|
|
|
FONTS_SRC := \
|
|
|
|
$(FONTDIR)/static/Inter-Black.woff2 \
|
|
|
|
$(FONTDIR)/static/Inter-BlackItalic.woff2 \
|
|
|
|
$(FONTDIR)/static/Inter-Bold.woff2 \
|
|
|
|
$(FONTDIR)/static/Inter-BoldItalic.woff2 \
|
|
|
|
$(FONTDIR)/static/Inter-ExtraBold.woff2 \
|
|
|
|
$(FONTDIR)/static/Inter-ExtraBoldItalic.woff2 \
|
|
|
|
$(FONTDIR)/static/Inter-ExtraLight.woff2 \
|
|
|
|
$(FONTDIR)/static/Inter-ExtraLightItalic.woff2 \
|
|
|
|
$(FONTDIR)/static/Inter-Italic.woff2 \
|
|
|
|
$(FONTDIR)/static/Inter-Light.woff2 \
|
|
|
|
$(FONTDIR)/static/Inter-LightItalic.woff2 \
|
|
|
|
$(FONTDIR)/static/Inter-Medium.woff2 \
|
|
|
|
$(FONTDIR)/static/Inter-MediumItalic.woff2 \
|
|
|
|
$(FONTDIR)/static/Inter-Regular.woff2 \
|
|
|
|
$(FONTDIR)/static/Inter-SemiBold.woff2 \
|
|
|
|
$(FONTDIR)/static/Inter-SemiBoldItalic.woff2 \
|
|
|
|
$(FONTDIR)/static/Inter-Thin.woff2 \
|
|
|
|
$(FONTDIR)/static/Inter-ThinItalic.woff2 \
|
|
|
|
$(FONTDIR)/static/InterDisplay-Black.woff2 \
|
|
|
|
$(FONTDIR)/static/InterDisplay-BlackItalic.woff2 \
|
|
|
|
$(FONTDIR)/static/InterDisplay-Bold.woff2 \
|
|
|
|
$(FONTDIR)/static/InterDisplay-BoldItalic.woff2 \
|
|
|
|
$(FONTDIR)/static/InterDisplay-ExtraBold.woff2 \
|
|
|
|
$(FONTDIR)/static/InterDisplay-ExtraBoldItalic.woff2 \
|
|
|
|
$(FONTDIR)/static/InterDisplay-ExtraLight.woff2 \
|
|
|
|
$(FONTDIR)/static/InterDisplay-ExtraLightItalic.woff2 \
|
|
|
|
$(FONTDIR)/static/InterDisplay-Italic.woff2 \
|
|
|
|
$(FONTDIR)/static/InterDisplay-Light.woff2 \
|
|
|
|
$(FONTDIR)/static/InterDisplay-LightItalic.woff2 \
|
|
|
|
$(FONTDIR)/static/InterDisplay-Medium.woff2 \
|
|
|
|
$(FONTDIR)/static/InterDisplay-MediumItalic.woff2 \
|
|
|
|
$(FONTDIR)/static/InterDisplay-Regular.woff2 \
|
|
|
|
$(FONTDIR)/static/InterDisplay-SemiBold.woff2 \
|
|
|
|
$(FONTDIR)/static/InterDisplay-SemiBoldItalic.woff2 \
|
|
|
|
$(FONTDIR)/static/InterDisplay-Thin.woff2 \
|
|
|
|
$(FONTDIR)/static/InterDisplay-ThinItalic.woff2 \
|
2023-11-18 20:47:31 +01:00
|
|
|
$(FONTDIR)/var/Inter-Variable.woff2 \
|
|
|
|
$(FONTDIR)/var/Inter-Variable-Italic.woff2 \
|
2023-11-19 03:02:21 +01:00
|
|
|
$(FONTDIR)/var/Inter-Variable.ttf
|
2022-05-26 20:20:06 +02:00
|
|
|
|
2023-11-18 20:47:31 +01:00
|
|
|
font-files/Inter-Regular.woff2: $(FONTS_SRC)
|
2023-11-19 03:02:21 +01:00
|
|
|
rm -rf font-files/Inter*
|
|
|
|
mkdir -p font-files
|
2023-11-18 20:47:31 +01:00
|
|
|
cp -a $^ font-files/
|
|
|
|
$(Q)touch $@
|
2022-05-26 20:20:06 +02:00
|
|
|
|
2023-11-19 03:02:21 +01:00
|
|
|
$(FONTS_SRC):
|
|
|
|
@echo "Missing fonts in $(FONTDIR)" >&2
|
|
|
|
@echo "Did you forget to 'make web' in the repository root?" >&2
|
|
|
|
@exit 1
|
|
|
|
|
2023-11-18 20:47:31 +01:00
|
|
|
lab/index.html: ../version.txt ../misc/tools/patch-version.py
|
2023-09-27 02:10:58 +02:00
|
|
|
. $(VENV); python ../misc/tools/patch-version.py $@
|
|
|
|
|
|
|
|
_data/fontinfo.json: ../misc/tools/fontinfo.py
|
2023-11-18 20:47:31 +01:00
|
|
|
_data/fontinfo.json: font-files/Inter-Regular.woff2
|
|
|
|
. $(VENV); python ../misc/tools/fontinfo.py -pretty $< > $@
|
|
|
|
|
|
|
|
lab/glyphinfo.json: ../misc/tools/gen-glyphinfo.py ../misc/UnicodeData.txt
|
|
|
|
lab/glyphinfo.json: ../build/ufo/Inter-Regular.ufo
|
|
|
|
. $(VENV); python ../misc/tools/gen-glyphinfo.py -ucd ../misc/UnicodeData.txt $< > $@
|
|
|
|
../build/ufo/Inter-Regular.ufo: $(wildcard ../build/ufo/Inter-Regular.ufo/*.plist)
|
|
|
|
touch $@
|
2022-05-26 20:20:06 +02:00
|
|
|
|
2023-09-27 02:10:58 +02:00
|
|
|
.PHONY: default build build-tmp serve serve-pub dist info fonts
|