bedstead/Makefile
Ben Harris be223879a1 Pass --no-recalc-timestamp to TTX
Without that, it updates the "modified" field in the 'head' table,
which makes builds unreproducible.
2024-11-16 11:53:04 +00:00

127 lines
3.7 KiB
Makefile

# SPDX-License-Identifier: CC0-1.0
FONTBASES = bedstead bedstead-extended bedstead-semicondensed \
bedstead-condensed bedstead-extracondensed \
bedstead-ultracondensed \
bedstead-bold bedstead-boldextended bedstead-boldsemicondensed \
bedstead-boldcondensed bedstead-boldextracondensed \
bedstead-boldultracondensed
TTXFILES = $(addsuffix .ttx, $(FONTBASES))
OTFFILES = $(addsuffix .otf, $(FONTBASES))
DISTFILES = bedstead.c Makefile CONTRIBUTING COPYING HACKING NEWS \
df.ps rom.ps Fontmap \
$(OTFFILES) \
bedstead-10.bdf bedstead-20.bdf bedstead-bold-20.bdf \
bedstead-10-df.png bedstead-20-df.png \
bedstead-complement.pdf
all: $(DISTFILES)
.PHONY: all-web
all-web: all sample.png extended.png icon-16.png icon-32.png icon-64.png
.PHONY: experimental
experimental: bedstead-chiseltip.otf bedstead-plotter-thin.otf \
bedstead-plotter-light.otf bedstead-plotter-medium.otf \
bedstead-plotter-bold.otf plotter.png
bedstead.ttx: bedstead
./bedstead > bedstead.ttx
bedstead-extended.ttx: bedstead
./bedstead --extended > bedstead-extended.ttx
bedstead-semicondensed.ttx: bedstead
./bedstead --semi-condensed > bedstead-semicondensed.ttx
bedstead-condensed.ttx: bedstead
./bedstead --condensed > bedstead-condensed.ttx
bedstead-extracondensed.ttx: bedstead
./bedstead --extra-condensed > bedstead-extracondensed.ttx
bedstead-ultracondensed.ttx: bedstead
./bedstead --ultra-condensed > bedstead-ultracondensed.ttx
bedstead-bold.ttx: bedstead
./bedstead --bold > bedstead-bold.ttx
bedstead-boldextended.ttx: bedstead
./bedstead --bold --extended > bedstead-boldextended.ttx
bedstead-boldsemicondensed.ttx: bedstead
./bedstead --bold --semi-condensed > bedstead-boldsemicondensed.ttx
bedstead-boldcondensed.ttx: bedstead
./bedstead --bold --condensed > bedstead-boldcondensed.ttx
bedstead-boldextracondensed.ttx: bedstead
./bedstead --bold --extra-condensed > bedstead-boldextracondensed.ttx
bedstead-boldultracondensed.ttx: bedstead
./bedstead --bold --ultra-condensed > bedstead-boldultracondensed.ttx
bedstead-oc.ttx: bedstead
./bedstead --plotter > bedstead-oc.ttx
bedstead-plotter-%.ttx: strokefont.py bedstead-oc.ttx
fontforge -lang=py -script strokefont.py plotter-$* bedstead-oc.ttx \
bedstead-plotter-$*.ttx
bedstead-chiseltip.ttx: strokefont.py bedstead-oc.ttx
fontforge -lang=py -script strokefont.py chiseltip bedstead-oc.ttx \
bedstead-chiseltip.ttx
bedstead-%.bdf.ps: bedstead
./bedstead --bdfgen $* > $@
bedstead-bold-%.bdf.ps: bedstead
./bedstead --bold --bdfgen $* > $@
# Dependency of all of OTFFILES could be narrowed to just the relevant
# one.
%.bdf: %.bdf.ps $(OTFFILES) Fontmap
gs -q -P -dSAFER -dNODISPLAY -dBATCH $< > $@
%.otf: %.ttx
ttx --no-recalc-timestamp -o $@ $<
%.png: %.ps $(OTFFILES) Fontmap
gs -P -q -dSAFER -sDEVICE=png16m -dTextAlphaBits=4 -o $@ $<
icon-%.png: icon.ps bedstead-extended.otf Fontmap
gs -P -q -dSAFER -dsize=$* -sDEVICE=png16m -dTextAlphaBits=4 -o $@ $<
bedstead-%-df.png: df.ps bedstead.otf Fontmap
gs -P -q -dSAFER -dsize=$* -sDEVICE=png16m -o $@ $<
bedstead-complement.ps: bedstead
./bedstead --complement > bedstead-complement.ps
bedstead-complement.pdf: bedstead-complement.ps bedstead.otf Fontmap
ps2pdf -P $< $@
.PHONY: clean
clean:
rm -f bedstead *.ttx *.otf *.bdf *.bdf.ps *.png *.pdf \
bedstead-complement.ps
.PHONY: install-user
install-user: $(OTFFILES)
install -d "$${HOME}"/.fonts
install -m 644 $(OTFFILES) "$${HOME}"/.fonts
VERSION != sed -n 's/^\#define VERSION "\(.*\)"/\1/p' < bedstead.c
.PHONY: dist
dist: $(DISTFILES)
rm -rf bedstead-$(VERSION)
mkdir bedstead-$(VERSION)
ln $(DISTFILES) bedstead-$(VERSION)
zip -r bedstead-$(VERSION).zip bedstead-$(VERSION)
rm -r bedstead-$(VERSION)
.DELETE_ON_ERROR: