sing-alongs/Makefile

64 lines
1.8 KiB
Makefile
Raw Normal View History

2020-07-16 12:31:51 +00:00
mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
WORKING_DIR := $(patsubst %/,%,$(dir $(mkfile_path)))
BOOKNAME=singalongs
SRC_DIR=src
BUILD_DIR=build
SONG_DIR=${SRC_DIR}/songs
BUILD_SONG_DIR=${BUILD_DIR}/songs
2025-01-17 08:45:29 +00:00
BUILD_BOOK_DIR=${BUILD_DIR}/book
2025-01-17 09:31:05 +00:00
BUILD_OPUS_DIR=${BUILD_DIR}/opus
2015-12-01 10:29:35 +00:00
2025-01-17 08:45:29 +00:00
BOOK_FULL=$(BUILD_BOOK_DIR)/full.pdf
BOOKLET=$(BUILD_BOOK_DIR)/booklet.pdf
GENERATED_SONGS=$(BUILD_DIR)/songs.typ
TYP_FILES=$(wildcard ${SONG_DIR}/*.typ)
2020-07-16 12:31:51 +00:00
LY_FILES=$(wildcard ${SONG_DIR}/*.ly)
LY_PDFS=$(patsubst %.ly,${BUILD_SONG_DIR}/%.pdf,$(notdir ${LY_FILES}))
2025-01-17 08:45:29 +00:00
LY_SVGS=$(patsubst %.ly,${BUILD_SONG_DIR}/%.svg,$(notdir ${LY_FILES}))
2025-01-17 09:31:05 +00:00
LY_OPUS=$(patsubst %.ly,${BUILD_OPUS_DIR}/%.opus,$(notdir ${LY_FILES}))
2015-11-30 17:26:30 +00:00
2025-01-17 09:31:05 +00:00
.PHONY: clean book opus all
2020-07-16 12:31:51 +00:00
.DEFAULT_GOAL := all
2015-11-30 17:26:30 +00:00
2025-01-17 09:31:05 +00:00
book: $(BOOK_FULL) $(BOOKLET) $(LY_SVGS) $(GENERATED_SONGS)
opus: $(LY_OPUS)
2015-11-30 17:26:30 +00:00
2025-01-17 08:45:29 +00:00
$(BUILD_DIR):
mkdir -p $(BUILD_DIR)
2015-11-30 17:26:30 +00:00
2025-01-17 08:45:29 +00:00
$(BUILD_SONG_DIR):
mkdir -p $(BUILD_SONG_DIR)
2015-11-30 17:26:30 +00:00
2025-01-17 09:31:05 +00:00
$(BUILD_OPUS_DIR):
mkdir -p $(BUILD_OPUS_DIR)
2025-01-17 08:45:29 +00:00
$(BUILD_BOOK_DIR):
mkdir -p $(BUILD_BOOK_DIR)
2015-12-01 10:42:11 +00:00
2025-01-17 08:45:29 +00:00
$(GENERATED_SONGS): $(LY_FILES) $(TYP_FILES)
bin/generate
2015-11-30 17:26:30 +00:00
2025-01-17 09:31:05 +00:00
$(BUILD_SONG_DIR)/%.pdf: $(SONG_DIR)/%.ly $(SRC_DIR)/setup.ly | $(BUILD_SONG_DIR)
lilypond --pdf -o $(basename $@) $<
2025-01-17 08:45:29 +00:00
pdfcrop $@ $@
2015-11-30 17:26:30 +00:00
2025-01-17 09:31:05 +00:00
$(BUILD_SONG_DIR)/%-1.midi: $(SONG_DIR)/%.ly $(SRC_DIR)/setup.ly | $(BUILD_SONG_DIR)
lilypond -o $(BUILD_SONG_DIR)/$* $<
$(BUILD_SONG_DIR)/%.svg: $(BUILD_SONG_DIR)/%.pdf | $(BUILD_SONG_DIR)
2025-01-17 08:45:29 +00:00
pdftocairo -svg $< $@
2015-11-30 17:26:30 +00:00
2025-01-17 09:31:05 +00:00
${BUILD_OPUS_DIR}/%.opus: $(BUILD_SONG_DIR)/%-1.midi | $(BUILD_OPUS_DIR)
timidity $< -Ow -o - | opusenc - $@
$(BOOK_FULL): $(TYP_FILES) $(LY_SVGS) $(GENERATED_SONGS) $(SRC_DIR)/singalongs.typ $(SRC_DIR)/song.typ | $(BUILD_BOOK_DIR)
2025-01-17 08:45:29 +00:00
typst compile --root $(WORKING_DIR) $(SRC_DIR)/singalongs.typ $@
2015-11-30 17:26:30 +00:00
2025-01-17 08:45:29 +00:00
$(BOOKLET): $(BOOK_FULL)
2025-01-17 09:31:05 +00:00
pdfjam --booklet true --a4paper --outfile $@ $<
2015-11-30 17:26:30 +00:00
2025-01-17 09:31:05 +00:00
all: book opus
2015-11-30 17:26:30 +00:00
2015-12-01 10:33:31 +00:00
clean:
2025-01-17 08:45:29 +00:00
rm -rf $(BUILD_DIR)