summaryrefslogtreecommitdiff
path: root/make/simulate.make
blob: 001ce467bfe9c7cd8fa8b46803614c39561c39e9 (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
.SECONDEXPANSION:
sim/%/.topology: SIM_MODEL=$(shell echo -n "$(@D)/" | tac -s/ | cut -s -d/ -f2)
sim/%/.topology: SIM_SEED= $(shell echo -n "$(@D)/" | tac -s/ | cut -s -d/ -f1)
%/.topology: bin/$$(SIM_MODEL)-convert_topology
	@echo "Generating topology for model $(SIM_MODEL) with random seed $(SIM_SEED)"
	@mkdir -p "$(shell dirname $@)"
	@[ ! -f "$@" -a ! -f "$@.prelim" ] || toolbin/warn_data
	@date > "$@.prelim"
	@R=`pwd`; cd "$(shell dirname $@)" && $$R/octave/random_topo.octave $(SIM_SEED) 2>plain_topology | grep --line-buffered '^generation'
	@R=`pwd`; cd "$(shell dirname $@)" && $$R/bin/$(SIM_MODEL)-convert_topology <plain_topology
	@date > "$@"
	@rm "$@.prelim"


.SECONDEXPANSION:
sim/%/.bootstrap: SIM_MODEL=$(shell echo -n "$(@D)/" | tac -s/ | cut -s -d/ -f2)
sim/%/.bootstrap: SIM_SEED= $(shell echo -n "$(@D)/" | tac -s/ | cut -s -d/ -f1)
%/.bootstrap: bin/$$(SIM_MODEL)-bootstrap %/.topology
	@echo "Bootstrapping model $(SIM_MODEL) with random seed $(SIM_SEED)"
	@mkdir -p "$(shell dirname $@)"
	@[ ! -f "$@" -a ! -f "$@.prelim" ] || toolbin/warn_data
	@date > "$@.prelim"
	@R=`pwd`; cd "$(shell dirname $@)" && $$R/bin/$(SIM_MODEL)-bootstrap $(SIM_SEED)
	@date > "$@"
	@rm "$@.prelim"

# sim/$model/$seed/.$time.simulate
.SECONDEXPANSION:
sim/%.simulate: SIM_MODEL=$(shell echo -n "$(@D)/" | tac -s/ | cut -s -d/ -f2)
sim/%.simulate: SIM_UNTIL=$(shell basename "$(@F)" | sed 's/.\(.*\).simulate/\1/')
sim/%.simulate: bin/$$(SIM_MODEL)-simulate $$(shell dirname sim/%)/.bootstrap
	@echo "=== Simulating model $(SIM_MODEL) until $(SIM_UNTIL) ==="
	@[ -n "$(SIM_MODEL)" -a -n "$(SIM_SEED)" -a -n "$(SIM_UNTIL)" ] || (echo "missing sim parameter"; false)
	@R=`pwd`; cd "$(shell dirname $@)" && flock -o .lock $$R/bin/$(SIM_MODEL)-simulate $(SIM_UNTIL) 2>.$(SIM_UNTIL).simulate.log
	@date > "$@"
contact: Jan Huwald // Impressum