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