aboutsummaryrefslogtreecommitdiff
path: root/makefile
blob: 634c22052a13cce9c7fa01dd3188c71f4e69bd35 (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
include config.mk

all: $(patsubst 2015/src/%.cpp,2015/bin/%,$(wildcard 2015/src/*.cpp)) \
	$(patsubst 2016/src/%.cpp,2016/bin/%,$(wildcard 2016/src/*.cpp)) \
	$(patsubst 2017/src/%.cpp,2017/bin/%,$(wildcard 2017/src/*.cpp)) \
	$(patsubst 2020/src/%.cpp,2020/bin/%,$(wildcard 2020/src/*.cpp)) \
	$(patsubst 2022/src/%.cpp,2022/bin/%,$(wildcard 2022/src/*.cpp)) \
	$(patsubst 2023/src/%.cpp,2023/bin/%,$(wildcard 2023/src/*.cpp)) \
	$(patsubst 2024/src/%.cpp,2024/bin/%,$(wildcard 2024/src/*.cpp)) \
	$(patsubst 2025/src/%.cpp,2025/bin/%,$(wildcard 2025/src/*.cpp))

%/bin:
	mkdir -p $@

# 2015
2015/bin/%: 2015/src/%.cpp | 2015/bin
	c++ $(CPPFLAGS) $^ -o $@

2015/bin/day04: 2015/src/day04.cpp | 2015/bin
	c++ $(CPPFLAGS) $^ -lmd -o $@

# 2016
2016/bin/%: 2016/src/%.cpp | 2016/bin
	c++ $(CPPFLAGS) $^ -o $@

2016/bin/day14: 2016/src/day14.cpp | 2016/bin
	c++ $(CPPFLAGS) $^ -lmd -o $@

2016/bin/day17: 2016/src/day17.cpp | 2016/bin
	c++ $(CPPFLAGS) $^ -lmd -o $@

2016/bin/day05: 2016/src/day05.cpp | 2016/bin
	c++ $(CPPFLAGS) $^ -lmd -o $@

# 2017
2017/bin/%: 2017/src/%.cpp | 2017/bin
	c++ $(CPPFLAGS) $^ -o $@

# 2020
2020/bin/%: 2020/src/%.cpp | 2020/bin
	c++ $(CPPFLAGS) $^ -o $@

# 2022
2022/bin/%: 2022/src/%.cpp | 2022/bin
	c++ $(CPPFLAGS) $^ -o $@

# 2023
2023/bin/%: 2023/src/%.cpp | 2023/bin
	c++ $(CPPFLAGS) $^ -o $@

2023/bin/day24: 2023/src/day24.cpp | 2023/bin
	c++ $(CPPFLAGS) -Wno-sign-conversion $^ -lz3 -o $@

# 2024
2024/bin/%: 2024/src/%.cpp | 2024/bin
	c++ $(CPPFLAGS) $^ -o $@

2024/bin/day13-z3: 2024/src/day13-z3.cpp | 2024/bin
	c++ $(CPPFLAGS) $^ -lz3 -o $@

# 2025
2025/bin/%: 2025/src/%.cpp | 2025/bin
	c++ $(CPPFLAGS) $^ -o $@

clean:
	rm -rf 2015/bin 2016/bin 2017/bin 2020/bin 2022/bin 2023/bin 2024/bin 2025/bin

.PHONY: all clean