aboutsummaryrefslogtreecommitdiffstats
path: root/GNUmakefile
blob: 430d4b9191b9e44d05bfc7daeb539034e2f6a9ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
pcms := 5m.pcm 10m.pcm 15m.pcm
oggs := $(pcms:.pcm=.ogg)
mp3s := $(pcms:.pcm=.mp3)

artist := "Tomasz Kramkowski"
genre := Electronic
album := Beeps
year := 2024
tracknum_5m := 3
title_5m := "Large Beeps"
tracknum_10m := 2
title_10m := "Versatile Beeps"
tracknum_15m := 1
title_15m := "Medium Beeps"

title = $(title_$(1))
tracknum = $(tracknum_$(1))

all: $(oggs)
mp3: $(mp3s)

5m.pcm: duration := 300
10m.pcm: duration := 600
15m.pcm: duration := 900

%.ogg: %.pcm
	oggenc --quiet --raw --raw-bits=8 --raw-chan=1 --raw-rate=8000 --quality=5 --artist=$(artist) --genre=$(genre) --date=$(year) --tracknum=$(call tracknum,$*) --title=$(call title,$*) --album=$(album) --output=$@ $<

%.mp3: %.pcm
	lame --quiet -r -s 8 --bitwidth 8 --unsigned -m m -V 4 --tt $(call title,$*) --ta $(artist) --tl $(album) --ty $(year) --tn $(call tracknum,$*) --tg $(genre) --noreplaygain $< $@

$(pcms): target/release/beeps GNUmakefile
	$< $(duration) >$@

target/release/beeps: Cargo.lock Cargo.toml beeps.rs
	cargo build --release

clean:
	rm $(oggs) $(mp3s) $(pcms)
	cargo clean

.PHONY: all mp3 clean