diff --git a/Makefile b/Makefile index 7fab25f..99b6f68 100644 --- a/Makefile +++ b/Makefile @@ -1,42 +1,24 @@ ########## Variables ########## -fortune_directory = /usr/local/share/fortune +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. +cookies = $(wildcard ttrpg*) -dat_files = $(wildcard *.dat) +target_cookies = $(patsubst %, $(fortune_directory)/%, $(cookies)) +target_dats = $(patsubst %, $(fortune_directory)/%.dat, $(cookies)) -# 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 = $(target_cookies) $(target_dats) ########## 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)/%: % | $(fortune_directory) +$(target_cookies): $(fortune_directory)/%: % install -pm644 $< $@ -$(fortune_directory): - mkdir $@ +$(target_dats): $(fortune_directory)/%.dat: % + strfile $< $@ uninstall: - $(RM) $(targets) - ! test -d $(fortune_directory) || rmdir --ignore-fail-on-non-empty $(fortune_directory) + $(RM) $(wildcard $(targets))