.POSIX:
.SUFFIXES: .all .htm .phtm .html .tex .txt .7 .pdf
ED = ed
# Items that are indented with additional spaces aren’t unpublished yet
objects = index.htm about.htm 404.htm projects.htm uses.htm uses-paper.htm kpop.htm \
checklist.htm \
tripod.htm \
design-for-exploitation.htm \
this-post-is-lisp.htm \
digital-bum.htm \
hypertext.htm \
making-c-uglier.htm \
making-c-prettier.htm \
this-post-is-cpp.htm \
lambda-0.htm \
brainfuck-lessons.htm \
lambda-1.htm \
regex-pronouns.htm \
lisp-design-patterns.htm \
nyxt-to-surf.htm \
lambda-2.htm \
tui-not-tui.htm \
falsehoods-html.htm \
oop-c.htm \
guile-optimization.htm \
lambda-3.htm \
cl-is-lots.htm \
my-generics.htm \
gmi-a11y.htm \
c-not-c.htm \
prose-vs-tweet.htm \
the-regex.htm \
scrollbar.htm \
disroot-gotcha.htm \
wisp.htm \
not-ai.htm \
commitmsg.htm \
printf.htm \
procnames.htm \
parameterized.htm \
paren-regex.htm \
sed-ed.htm \
lisp-indent.htm \
generated.htm \
this-post-is-ed.htm \
3mins.htm \
customize-ed.htm \
codeberg-pages.htm \
ugly-things.htm \
lambda-4.htm \
css-only-highlight.htm \
postmodern-front-end.htm \
cutting-corners.htm \
llms-suck.htm \
tarot-biases.htm \
transparent-ui.htm \
lost-compute.htm \
explanations.htm \
lambda-5.htm \
stupid.htm \
logical-pathnames.htm \
customize-repl.htm \
email-formatting.htm \
just.htm \
lisp-lines.htm \
pidgin.htm \
my-ed.htm \
select-text.htm \
threading.htm \
advanc-ed.htm \
lambda-6.htm \
customize-ed-2.htm \
atlas.htm \
better-word.htm \
blc-hard.htm \
cl-submodules.htm \
2025.htm \
package-inferred.htm \
boredom.htm \
easy-fixes.htm \
markdown.htm \
computer-tenderness.htm \
ed-1.htm \
ed-2.htm \
vscode-bad.htm \
no-more-software.htm \
re-prose.htm \
kaktovik.htm \
gess.htm \
principles.htm \
escalator.htm \
arm-shorthand-1888.htm \
pandyssia/rules.htm \
wiki.htm \
my-scheme.htm \
no-laptop.htm \
new-menu.htm
html_objects = $(objects:htm=html)
_html_only_objects = repl.htm cv.htm
html_only_objects = $(_html_only_objects:htm=html)
txt_objects = $(objects:htm=txt)
man_objects = $(objects:htm=7)
tex_objects = $(objects:htm=tex)
pdf_objects = $(objects:htm=pdf)
re-prose.htm: re-prose.phtm
-cp re-prose.phtm $@
-cat scripts/re-prose.ed | $(ED) -s $@
_tarot_objects = tarot/stories/index.htm \
tarot/stories/satiated-death.htm \
tarot/stories/little-town-queen.htm \
tarot/stories/witness.htm \
tarot/stories/swords-x.htm \
tarot/stories/death.htm \
tarot/stories/cups-king.htm \
tarot/stories/pentacles-queen.htm \
tarot/stories/mirror.htm \
tarot/stories/strange-gods.htm
tarot_objects = tarot/index.html $(_tarot_objects:htm=html)
tarot/index.html: tarot/index.htm
-cp tarot/index.htm $@
-$(ED) -s $@ < tarot/totarot.ed
tarot: $(tarot_objects)
html: $(html_objects) $(html_only_objects)
txt: $(txt_objects)
man: $(man_objects)
latex: $(tex_objects)
pdf: latex $(pdf_objects)
all: html txt man latex tarot _redirects
.htm.txt:
-cp $< $@
-$(ED) -s $@ < scripts/preprocess.ed
-$(ED) -s $@ < scripts/totxt.ed
@echo $@
.htm.7:
-cp $< $@
-$(ED) -s $@ < scripts/preprocess.ed
-$(ED) -s $@ < scripts/toman.ed
@echo $@
.htm.html:
-cp $< $@
-$(ED) -s $@ < scripts/preprocess.ed
-$(ED) -s $@ < scripts/tohtml.ed
-$(ED) -s $@ < scripts/tohighlight.ed
@echo $@
.htm.tex:
-cp $< $@
-$(ED) -s $@ < scripts/preprocess.ed
-$(ED) -s $@ < scripts/totex.ed
@echo $@
.tex.pdf:
-xelatex -interaction=batchmode -output-directory $(@D)/ $<
.htm.all:
$(MAKE) $(MAKEFLAGS) $(@:all=html)
$(MAKE) $(MAKEFLAGS) $(@:all=txt)
$(MAKE) $(MAKEFLAGS) $(@:all=7)
$(MAKE) $(MAKEFLAGS) $(@:all=tex)
@echo "done"
_redirects: _redirects.in $(objects)
cp _redirects.in _redirects
$(foreach object,$(patsubst %.htm,%,$(objects)), echo "/$(object) /$(object).html 301" >> _redirects ;)
$(foreach object,$(patsubst %.htm,%,$(_html_only_objects)), echo "/$(object) /$(object).html 301" >> _redirects ;)
clean:
-rm $(html_objects) $(html_only_objects) \
$(txt_objects) \
$(man_objects) \
$(tex_objects) \
$(tarot_objects) \
*.aux *.log *.out *.nav *.snm *.toc \
*/*.aux */*.log */*.out */*.nav */*.snm */*.toc \
$(pdf_objects) \
$(tarot_objects)