mirror of
https://codeberg.org/kyonshi/ttrpg-fortunes.git
synced 2026-01-02 01:53:46 +01:00
refactor for automatic .dat files
Now `make` makes .dat files on the fly, so they're never out of sync with the base-file. Also, /usr/local has been abandoned as it does not work with fortune.
This commit is contained in:
36
Makefile
36
Makefile
@@ -1,42 +1,24 @@
|
|||||||
########## Variables ##########
|
########## 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
|
cookies = $(wildcard ttrpg*)
|
||||||
# files, e.g. 'D20.dat' and 'WW.dat', the they would be included.
|
|
||||||
|
|
||||||
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
|
targets = $(target_cookies) $(target_dats)
|
||||||
# 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))
|
|
||||||
|
|
||||||
########## Rules ##########
|
########## Rules ##########
|
||||||
|
|
||||||
.PHONY: install
|
.PHONY: install
|
||||||
install: $(targets)
|
install: $(targets)
|
||||||
|
|
||||||
# Ignore the `$(targets): ` section; the rule is about how to make
|
$(target_cookies): $(fortune_directory)/%: %
|
||||||
# /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)
|
|
||||||
install -pm644 $< $@
|
install -pm644 $< $@
|
||||||
|
|
||||||
$(fortune_directory):
|
$(target_dats): $(fortune_directory)/%.dat: %
|
||||||
mkdir $@
|
strfile $< $@
|
||||||
|
|
||||||
uninstall:
|
uninstall:
|
||||||
$(RM) $(targets)
|
$(RM) $(wildcard $(targets))
|
||||||
! test -d $(fortune_directory) || rmdir --ignore-fail-on-non-empty $(fortune_directory)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user