aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: e075633cd8521b1d8fefd5e40b94514d2fe442bb (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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
CC=g++
LIBS=libconfuse nlohmann_json
CFLAGS=-c -Wall -fPIC -std=c++20
LDFLAGS=
SOURCES=src/armor.cc src/cmd.cc src/cmd_fsops.cc src/cmd_manipulate.cc src/cmd_query.cc src/cmd_usage.cc src/creature.cc src/dice.cc src/dmtool.cc src/entry.cc src/feature.cc src/item.cc src/rules.cc src/settings.cc src/spellcasting.cc src/spell.cc src/utils.cc src/weapon.cc 
OBJECTS=$(SOURCES:.cc=.o)
LIBRARY=
EXECUTABLE=dmtool
ifeq ($(PREFIX),)
    PREFIX := /usr
endif

all: $(SOURCES) $(EXECUTABLE)

parsed: parser/scrapeToJson.py parser/utils.py parser/verified.txt
	python parser/scrapeToJson.py
	touch parsed/

install: $(EXECUTABLE) parsed
	install -d $(DESTDIR)$(PREFIX)/share/dmtool/
	cp -r parsed/* $(DESTDIR)$(PREFIX)/share/dmtool/
	install -d $(DESTDIR)$(PREFIX)/bin/
	install -m 755 $(EXECUTABLE) $(DESTDIR)$(PREFIX)/bin/
	install -m 644 files/dmtool.bash $(DESTDIR)/usr/share/bash-completion/completions/dmtool
	install -m 644 files/dmtool.conf $(DESTDIR)/etc/dmtool.conf

$(EXECUTABLE): $(OBJECTS)
	$(CC) $(OBJECTS) -o $@ $(LDFLAGS) `pkg-config $(LIBS) --libs`


src/armor.o: src/armor.cc src/armor.h src/item.h src/entry.h \
 src/defines.h src/creature.h src/rules.h src/utils.h src/feature.h
	$(CC) $(CFLAGS) $< -o $@ `pkg-config $(LIBS) --cflags`

src/cmd.o: src/cmd.cc src/cmd.h src/settings.h
	$(CC) $(CFLAGS) $< -o $@ `pkg-config $(LIBS) --cflags`

src/cmd_fsops.o: src/cmd_fsops.cc src/cmd.h src/utils.h src/entry.h \
 src/defines.h
	$(CC) $(CFLAGS) $< -o $@ `pkg-config $(LIBS) --cflags`

src/cmd_manipulate.o: src/cmd_manipulate.cc src/cmd.h src/utils.h \
 src/entry.h src/defines.h src/creature.h src/rules.h src/feature.h \
 src/item.h src/spellcasting.h src/spell.h src/settings.h
	$(CC) $(CFLAGS) $< -o $@ `pkg-config $(LIBS) --cflags`

src/cmd_query.o: src/cmd_query.cc src/cmd.h src/utils.h src/entry.h \
 src/defines.h src/creature.h src/rules.h src/feature.h src/item.h \
 src/dice.h src/weapon.h
	$(CC) $(CFLAGS) $< -o $@ `pkg-config $(LIBS) --cflags`

src/cmd_usage.o: src/cmd_usage.cc src/cmd.h
	$(CC) $(CFLAGS) $< -o $@ `pkg-config $(LIBS) --cflags`

src/creature.o: src/creature.cc src/creature.h src/rules.h src/utils.h \
 src/entry.h src/defines.h src/feature.h src/item.h src/dice.h \
 src/weapon.h src/armor.h src/attack.h src/spellcasting.h src/spell.h
	$(CC) $(CFLAGS) $< -o $@ `pkg-config $(LIBS) --cflags`

src/dice.o: src/dice.cc src/dice.h
	$(CC) $(CFLAGS) $< -o $@ `pkg-config $(LIBS) --cflags`

src/dmtool.o: src/dmtool.cc src/cmd.h src/utils.h src/entry.h \
 src/defines.h
	$(CC) $(CFLAGS) $< -o $@ `pkg-config $(LIBS) --cflags`

src/entry.o: src/entry.cc src/entry.h src/defines.h src/utils.h \
 src/feature.h src/item.h src/spell.h src/creature.h src/rules.h
	$(CC) $(CFLAGS) $< -o $@ `pkg-config $(LIBS) --cflags`

src/feature.o: src/feature.cc src/feature.h src/entry.h src/defines.h \
 src/spellcasting.h src/spell.h src/rules.h src/utils.h src/attack.h \
 src/weapon.h src/item.h
	$(CC) $(CFLAGS) $< -o $@ `pkg-config $(LIBS) --cflags`

src/item.o: src/item.cc src/item.h src/entry.h src/defines.h src/weapon.h \
 src/rules.h src/utils.h src/armor.h
	$(CC) $(CFLAGS) $< -o $@ `pkg-config $(LIBS) --cflags`

src/rules.o: src/rules.cc src/rules.h src/utils.h src/entry.h \
 src/defines.h
	$(CC) $(CFLAGS) $< -o $@ `pkg-config $(LIBS) --cflags`

src/settings.o: src/settings.cc src/settings.h
	$(CC) $(CFLAGS) $< -o $@ `pkg-config $(LIBS) --cflags`

src/spellcasting.o: src/spellcasting.cc src/spellcasting.h src/feature.h \
 src/entry.h src/defines.h src/spell.h src/rules.h src/utils.h \
 src/creature.h src/item.h
	$(CC) $(CFLAGS) $< -o $@ `pkg-config $(LIBS) --cflags`

src/spell.o: src/spell.cc src/spell.h src/entry.h src/defines.h \
 src/utils.h
	$(CC) $(CFLAGS) $< -o $@ `pkg-config $(LIBS) --cflags`

src/utils.o: src/utils.cc src/utils.h src/entry.h src/defines.h \
 src/settings.h
	$(CC) $(CFLAGS) $< -o $@ `pkg-config $(LIBS) --cflags`

src/weapon.o: src/weapon.cc src/weapon.h src/item.h src/entry.h \
 src/defines.h src/rules.h src/utils.h src/creature.h src/feature.h \
 src/dice.h
	$(CC) $(CFLAGS) $< -o $@ `pkg-config $(LIBS) --cflags`

clean:
	rm -f src/*.o $(LIBRARY) $(EXECUTABLE)