102 lines
3.2 KiB
Makefile
102 lines
3.2 KiB
Makefile
mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
|
|
WORKING_DIR := $(patsubst %/,%,$(dir $(mkfile_path)))
|
|
BOOKNAME=kommersbuch
|
|
SRC_DIR=src
|
|
BUILD_DIR=build
|
|
TMP_DIR=tmp
|
|
SONG_DIR=${SRC_DIR}/songs
|
|
BUILD_BOOK_DIR=${BUILD_DIR}/books
|
|
TMP_BOOK_DIR=${TMP_DIR}/books
|
|
BUILD_SONG_DIR=${BUILD_DIR}/songs
|
|
TMP_SONG_DIR=${TMP_DIR}/songs
|
|
BUILD_MIDI_DIR=${BUILD_DIR}/midi
|
|
TMP_MIDI_DIR=${TMP_DIR}/midi
|
|
BUILD_OPUS_DIR=${BUILD_DIR}/opus
|
|
|
|
LY_FILES=$(wildcard ${SONG_DIR}/*.ly)
|
|
LY_PDFS=$(patsubst %.ly,${BUILD_SONG_DIR}/%.pdf,$(notdir ${LY_FILES}))
|
|
LY_TMP_PDFS=$(patsubst %.ly,${TMP_SONG_DIR}/%.pdf,$(notdir ${LY_FILES}))
|
|
LY_MIDIS=$(patsubst %.ly,${BUILD_MIDI_DIR}/%.midi,$(notdir ${LY_FILES}))
|
|
LY_TMP_MIDIS=$(patsubst %.ly,${TMP_MIDI_DIR}/%.midi,$(notdir ${LY_FILES}))
|
|
LY_OPUS=$(patsubst %.ly,${BUILD_OPUS_DIR}/%.opus,$(notdir ${LY_FILES}))
|
|
|
|
.PHONY: book songs midi opus clean directories all
|
|
.DEFAULT_GOAL := all
|
|
|
|
directories: ${BUILD_DIR} ${BUILD_BOOK_DIR} ${TMP_BOOK_DIR} ${BUILD_SONG_DIR} ${BUILD_MIDI_DIR} ${TMP_DIR} ${TMP_SONG_DIR} ${TMP_MIDI_DIR} ${BUILD_OPUS_DIR}
|
|
|
|
${BUILD_DIR}:
|
|
mkdir -p ${BUILD_DIR}
|
|
|
|
${BUILD_BOOK_DIR}:
|
|
mkdir -p ${BUILD_BOOK_DIR}
|
|
|
|
${BUILD_SONG_DIR}:
|
|
mkdir -p ${BUILD_SONG_DIR}
|
|
|
|
${BUILD_MIDI_DIR}:
|
|
mkdir -p ${BUILD_MIDI_DIR}
|
|
|
|
${TMP_DIR}:
|
|
mkdir -p ${TMP_DIR}
|
|
|
|
${TMP_BOOK_DIR}:
|
|
mkdir -p ${TMP_BOOK_DIR}
|
|
|
|
${TMP_SONG_DIR}:
|
|
mkdir -p ${TMP_SONG_DIR}
|
|
|
|
${TMP_MIDI_DIR}:
|
|
mkdir -p ${TMP_MIDI_DIR}
|
|
|
|
${BUILD_OPUS_DIR}:
|
|
mkdir -p ${BUILD_OPUS_DIR}
|
|
|
|
${TMP_SONG_DIR}/%.pdf: ${SONG_DIR}/%.ly ${SONG_DIR}/%.tex
|
|
cd ${SRC_DIR} && lualatex --jobname='$(notdir $(basename $@))' --output-directory=${WORKING_DIR}/${TMP_SONG_DIR} --shell-escape ${WORKING_DIR}/${SRC_DIR}/song.tex ${WORKING_DIR}/${SONG_DIR}/$(notdir $(basename $@)).ly ${WORKING_DIR}/${SONG_DIR}/$(notdir $(basename $@)).tex
|
|
rm -r ${SRC_DIR}/tmp_ly
|
|
|
|
${BUILD_MIDI_DIR}/%.midi: ${TMP_MIDI_DIR}/%-1.midi
|
|
cp $< $@
|
|
|
|
${TMP_MIDI_DIR}/%-1.midi: ${SONG_DIR}/%.ly
|
|
lilypond --output=${TMP_MIDI_DIR} ${WORKING_DIR}/$<
|
|
|
|
${BUILD_OPUS_DIR}/%.opus: ${BUILD_MIDI_DIR}/%.midi
|
|
timidity $< -Ow -o - | opusenc - $@
|
|
|
|
${TMP_BOOK_DIR}/%.pdf: ${SRC_DIR}/%.tex ${SRC_DIR}/images/title.png
|
|
latexmk -cd -lualatex -e '$$lualatex=q/lualatex %O -shell-escape %S/' -output-directory=${WORKING_DIR}/${TMP_BOOK_DIR} $<
|
|
rm -r ${SRC_DIR}/tmp_ly
|
|
|
|
${TMP_BOOK_DIR}/%-folio.pdf: ${TMP_BOOK_DIR}/%.pdf
|
|
cd ${TMP_BOOK_DIR} && \
|
|
../../bin/makebook -v -t folio -i $(notdir $<) -o $(notdir $@)
|
|
|
|
#long edge binding
|
|
${TMP_BOOK_DIR}/%-quarto.pdf: ${TMP_BOOK_DIR}/%.pdf
|
|
cd ${TMP_BOOK_DIR} && \
|
|
../../bin/makebook -v -t quarto -i $(notdir $<) -o $(notdir $@)
|
|
|
|
${TMP_BOOK_DIR}/%-sexto.pdf: ${TMP_BOOK_DIR}/%.pdf
|
|
cd ${TMP_BOOK_DIR} && \
|
|
../../bin/makebook -v -t sexto -i $(notdir $<) -o $(notdir $@)
|
|
|
|
#short edge binding
|
|
${TMP_BOOK_DIR}/%-octavo.pdf: ${TMP_BOOK_DIR}/%.pdf
|
|
cd ${TMP_BOOK_DIR} && \
|
|
../../bin/makebook -v -t octavo -i $(notdir $<) -o $(notdir $@)
|
|
|
|
${BUILD_DIR}/%.pdf: ${TMP_DIR}/%.pdf
|
|
cp $< $@
|
|
|
|
book: directories ${BUILD_BOOK_DIR}/${BOOKNAME}.pdf ${BUILD_BOOK_DIR}/${BOOKNAME}-folio.pdf ${BUILD_BOOK_DIR}/${BOOKNAME}-quarto.pdf ${BUILD_BOOK_DIR}/${BOOKNAME}-sexto.pdf ${BUILD_BOOK_DIR}/${BOOKNAME}-octavo.pdf ${LY_FILES}
|
|
songs: directories ${LY_PDFS}
|
|
midi: directories ${LY_MIDIS}
|
|
opus: directories ${LY_OPUS}
|
|
all: book songs midi opus
|
|
|
|
clean:
|
|
rm -rf ${BUILD_DIR}
|
|
rm -rf ${TMP_DIR}
|