-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
80 lines (59 loc) · 2.24 KB
/
Makefile
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
MODEL_GENERATOR_VERSION=5.5.0-SNAPSHOT
modelgenerator=bin/modelgenerator-$(MODEL_GENERATOR_VERSION).jar
MINCER_VERSION=3.4.0-SNAPSHOT
mincer=bin/mincer-$(MINCER_VERSION).jar
# Available flavors for data
FLAVORS := philfak wiwi cs
# Default flavor
flavor=philfak
# Available actions
ACTIONS := data.mch data.sqlite3
TARGETS :=$(foreach i,$(FLAVORS),$(foreach j,$(ACTIONS),$(join $i,-$j)))
# Default targets
dist: $(join $(flavor),-dist)
data.mch: $(join $(flavor),-data.mch)
cp $< $@
data.sqlite3: $(join $(flavor),-data.sqlite3)
cp $< $@
# Files produced by $(flavor)
DATABASES:=$(foreach f,$(FLAVORS),$(join $(f),-data.sqlite3))
MACHINES:=$(foreach f,$(FLAVORS),$(join $(f),-data.mch))
MODULECOMBINATIONS:=$(foreach f,$(FLAVORS),$(join $(f),-data.xml))
# flavored dist action
DIST:=$(foreach f,$(FLAVORS),$(join $(f),-dist))
# FLAVOR files
# philfak flavor files
philfak-tree=raw/philfak/Modulbaum.xml
philfak-data=raw/philfak/Moduldaten.xml
# wiwi flavor files
wiwi-tree=raw/wiwi/Modulbaum.xml
wiwi-data=raw/wiwi/Moduldaten.xml
# cs flavor files
cs-tree=raw/cs/Modulbaum.xml
cs-data=raw/cs/Moduldaten.xml
$(DATABASES): %-data.sqlite3: $(mincer) $($(flavor)-tree) $($(flavor)-data)
time java -Xmx1500M -jar $(mincer) --output=$@ --module-tree=$($(flavor)-tree) --module-data=$($(flavor)-data)
$(MACHINES): %.mch: %.sqlite3 %.xml | $(modelgenerator)
time java -Xmx1500M -jar $(modelgenerator) --database=$< --output=$@
$(MODULECOMBINATIONS): %.xml: %.sqlite3 | $(modelgenerator)
time java -Xmx1500M -jar $(modelgenerator) --template=mc --database=$< --output=$@
# distribution rules
dist-setup:
mkdir -p dist
$(DIST): %-dist: %-data.sqlite3 | dist-setup
cp $^ dist/data.sqlite3
bin/:
mkdir -p bin/
$(modelgenerator): bin/
curl http://www3.hhu.de/stups/downloads/plues/model-generator/model-generator-standalone-$(MODEL_GENERATOR_VERSION).jar -z $(modelgenerator) -o $(modelgenerator) --silent --location
$(mincer): bin/
curl http://www3.hhu.de/stups/downloads/plues/mincer/mincer-$(MINCER_VERSION)-standalone.jar -z $(mincer) -o $(mincer) --silent --location
clean:
rm -rf dist/
rm -f $(TARGETS) $(ACTIONS)
rm -f *.prob
very_clean: clean
rm -f $(modelgenerator)
rm -f $(mincer)
rm -f bin/*.jar
.PHONY: clean very_clean dist-setup $(ACTIONS) $(FLAVORS)