From 25cc3dd7285e767b32eb105591e2f2e0d75f3ce6 Mon Sep 17 00:00:00 2001 From: Malin Freeborn Date: Mon, 14 Apr 2025 13:44:30 +0200 Subject: [PATCH] make comments --- Makefile | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 4ac7db2..a351e93 100644 --- a/Makefile +++ b/Makefile @@ -1,17 +1,38 @@ +########## Variables ########## + fortune_directory = /usr/share/fortune +# This just equals 'ttrpg.dat', but if someone wants to split it into separate +# files, e.g. 'D20.dat' and 'WW.dat', the they would be included. + dat_files = $(wildcard *.dat) +# Each .dat file has a corresponding fortune file to be included. This +# apparently convoluted mess is just here to select fortune files, and not the +# Makefile and README. fortune_files = $(patsubst %.dat, %, $(dat_files)) fortune_files += $(dat_files) +# `patsubst` = 'path substitution', so +# 'ttrpg' --> /usr/share/fortune/ttrpg +# Now `make` knows (at long last) what you want installed. targets = $(patsubst %, $(fortune_directory)/%, $(fortune_files)) -$(targets): $(fortune_directory)/%: % - install -pm644 $< $@ +########## Rules ########## .PHONY: install install: $(targets) +# Ignore the `$(targets): ` section; the rule is about how to make +# /usr/share/fortune/[that] from [this]. +# The next linen says you just install this (`$<`) from that (`$@`). +# We use `install` rather than the more familiar `cp`, because cause back in the +# days of Unix-yore, Xenox had a patent on the concept of a copy and +# Mathematicians had to do their own legal work as international law hadn't been +# established. Now I'd like to digress from my prepared remarks to discuss how +# I invented the terlet... +$(targets): $(fortune_directory)/%: % + install -pm644 $< $@ + clean: $(RM) $(wildcard $(targets))