aboutsummaryrefslogtreecommitdiffstats
path: root/src/Makefile
blob: ab16d991ff330c8fdd5702a252edc79260c280a8 (plain) (blame)
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
43
44
45
46
47
48
49
DAYS = $(shell seq 1 25 | xargs printf "%02i\n")

all:: build run

define make-day

run:: $1/run

build:: $1/main

clean:: $1/clean

.PHONY: $1/run $1/clean

$1/target/debug/day$1: $1/src/main.rs
	@cd $1 && cargo build

$1/target/release/day$1: $1/src/main.rs
	@cd $1 && cargo build -r

$1/main: $1/target/release/day$1
	@cp $1/target/release/day$1 $1/main

$1/debug1: $1/target/debug/day$1
	@cd $1 && time ./target/debug/day$1 1

$1/debug2: $1/target/debug/day$1
	@cd $1 && time ./target/debug/day$1 2

$1/run1: $1/main
	@cd $1 && time ./main 1

$1/run2: $1/main
	@cd $1 && time ./main 2

$1/run: $1/main
	@echo "== day $1 =="
	@echo -en "\npart 1: " && cd $1 && time ./main 1
	@echo -en "\npart 2: " && cd $1 && time ./main 2
	@echo ""

$1/clean:
	rm $1/main

endef

$(foreach day,$(DAYS),$(eval $(call make-day,$(day))))

.PHONY: all build run clean