Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
alcolica
kommersbuch
Commits
e59d496f
Verified
Commit
e59d496f
authored
Apr 18, 2022
by
Sebastian Hugentobler
Browse files
clean up makefile
parent
391ea705
Pipeline
#221
passed with stage
in 34 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Makefile
View file @
e59d496f
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
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
BOOK_TYPES
=
folio quarto sexto octavo
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
}
))
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 all
.DEFAULT_GOAL
:=
all
define
BUILDER
$(TMP_BOOK_DIR)/%-$(TYPE).pdf
:
$(TMP_BOOK_DIR)/%.pdf
cd
$(TMP_BOOK_DIR)
&&
\
../../bin/makebook
-v
-t
$(TYPE)
-i
$
$(
notdir
$$
<
)
-o
$
$(
notdir
$$
@
)
endef
$(foreach
TYPE,$(BOOK_TYPES),$(eval
$(BUILDER)))
%.dir
:
mkdir
-p
$*
${TMP_SONG_DIR}/%.pdf
:
${SONG_DIR}/%.ly ${SONG_DIR}/%.tex | ${TMP_SONG_DIR}.dir
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
$(TMP_SONG_DIR)/%.pdf
:
$(SONG_DIR)/%.ly $(SONG_DIR)/%.tex | $(TMP_SONG_DIR).dir
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
$
{
BUILD_MIDI_DIR
}
/%.midi
:
$
{
TMP_MIDI_DIR
}
/%-1.midi | $
{
BUILD_MIDI_DIR
}
.dir
$
(
BUILD_MIDI_DIR
)
/%.midi
:
$
(
TMP_MIDI_DIR
)
/%-1.midi | $
(
BUILD_MIDI_DIR
)
.dir
cp
$<
$@
$
{
TMP_MIDI_DIR
}
/%-1.midi
:
$
{
SONG_DIR
}
/%.ly | $
{
TMP_MIDI_DIR
}
.dir
lilypond
--output
=
$
{
TMP_MIDI_DIR
}
$
{
WORKING_DIR
}
/
$<
$
(
TMP_MIDI_DIR
)
/%-1.midi
:
$
(
SONG_DIR
)
/%.ly | $
(
TMP_MIDI_DIR
)
.dir
lilypond
--output
=
$
(
TMP_MIDI_DIR
)
$
(
WORKING_DIR
)
/
$<
$
{
BUILD_OPUS_DIR
}
/%.opus
:
$
{
BUILD_MIDI_DIR
}
/%.midi | $
{
BUILD_OPUS_DIR
}
.dir
$
(
BUILD_OPUS_DIR
)
/%.opus
:
$
(
BUILD_MIDI_DIR
)
/%.midi | $
(
BUILD_OPUS_DIR
)
.dir
timidity
$<
-Ow
-o
- | opusenc -
$@
${TMP_BOOK_DIR}/%.pdf
:
${SRC_DIR}/%.tex ${SRC_DIR}/images/title.png | ${TMP_BOOK_DIR}.dir
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
$@
)
$(TMP_BOOK_DIR)/%.pdf
:
$(SRC_DIR)/%.tex $(SRC_DIR)/images/title.png | $(TMP_BOOK_DIR).dir
latexmk
-cd
-lualatex
-e
'$$lualatex=q/lualatex %O -shell-escape %S/'
-output-directory
=
$(WORKING_DIR)
/
$(TMP_BOOK_DIR)
$<
rm
-r
$(SRC_DIR)
/tmp-ly
$
{
BUILD_DIR
}
/%.pdf
:
$
{
TMP_DIR
}
/%.pdf | $
{
BUILD_BOOK_DIR
}
.dir $
{
BUILD_SONG_DIR
}
.dir
$
(
BUILD_DIR
)
/%.pdf
:
$
(
TMP_DIR
)
/%.pdf | $
(
BUILD_BOOK_DIR
)
.dir $
(
BUILD_SONG_DIR
)
.dir
cp
$<
$@
book
:
$
{
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
:
$
{
LY_PDFS
}
midi
:
$
{
LY_MIDIS
}
opus
:
$
{
LY_OPUS
}
book
:
$
(
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
:
$
(
LY_PDFS
)
midi
:
$
(
LY_MIDIS
)
opus
:
$
(
LY_OPUS
)
all
:
book songs midi opus
clean
:
rm
-rf
$
{
BUILD_DIR
}
rm
-rf
$
{
TMP_DIR
}
rm
-r
$
{
SRC_DIR
}
/tmp-ly
rm
-rf
$
(
BUILD_DIR
)
rm
-rf
$
(
TMP_DIR
)
rm
-r
f
$
(
SRC_DIR
)
/tmp-ly
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment