.PHONY = all clean data est collect
SEED = 123456
NOSIM = 100

all: collect

simdirs := $(shell echo 'cat(formatC(1:$(NOSIM), digits=3, flag="0"))' | R --slave)
datadone := $(foreach dir,$(simdirs),$(dir)/datadone)
simfiles := $(foreach dir,$(simdirs),$(dir)/simdone)

$(datadone): sim.R
	mkdir $(@D)
	mkdir $(@D)/DATA 
	cd $(@D); touch datadone;

SIMLINE = 'set.seed($(SEED)); \
           sapply(dir(pattern="^[[:digit:]]"), \
             function(d){\
               setwd(paste(d,"/DATA",sep="")); \
               source("../../sim.R"); \
               setwd("../..")\
             }\
           )' 

data: $(datadone)
	echo $(SIMLINE) | R --vanilla --slave;

COLLECTONE = 'dn<-c("ADMB","BUGS","R");\
              sim<-lapply(dn,function(d){setwd(d);load("fit.RData");setwd("..");results});\
              names(sim)<-dn;\
              save(sim,file="sim.RData")'

$(simfiles): data
	cp -r ../R ../ADMB ../BUGS ../Makefile $(@D)
	cd $(@D); make clean; make all
	cd $(@D); echo $(COLLECTONE) | R --vanilla --slave
	cd $(@D); touch simdone;

est: $(simfiles)

COLLECTALL = 'dn<-dir(pattern="^[[:digit:]]");\
              sims<-lapply(dn,function(d){setwd(d);load("sim.RData");setwd("..");sim});\
              save(sims,file="allsim.RData")'

allsims.RData: 
	echo $(COLLECTALL) | R --vanilla --slave

collect: allsims.RData

clean: 
	rm -rf 0* allsim.RData Makefile~ sim.R~
