summaryrefslogtreecommitdiff
path: root/make/simulate.make
diff options
context:
space:
mode:
Diffstat (limited to 'make/simulate.make')
-rw-r--r--make/simulate.make35
1 files changed, 35 insertions, 0 deletions
diff --git a/make/simulate.make b/make/simulate.make
new file mode 100644
index 0000000..001ce46
--- /dev/null
+++ b/make/simulate.make
@@ -0,0 +1,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