# 
# Top level Makefile to build Sebastian Hainzl's forecast model executables for
# New Zealand

.PHONY: default all install clean

default: all

# ----------------------------------------------------------------------
slipmodel_conversion_PROGRAM = slipmodel_conversion
probmaps_PROGRAM = calculate_CHRISTOPH_probmaps
forecast_PROGRAM = forecast

bin_PROGRAMS = $(slipmodel_conversion_PROGRAM) $(probmaps_PROGRAM) $(forecast_PROGRAM)
model_SCRIPTS = runETAS0.pl \
                runETAS1.pl \
                runETAS2.pl \
                runRETAS0.pl \
                runRETAS1.pl \
                runRETAS2.pl
model_DATA = *.dat

slipmodel_conversion_SOURCES = source/cattania-codes/slipmodel_conversion.c
probmaps_SOURCES = source/bach-codes/*c
forecast_SOURCES = source/hainzl-codes/forecast.c

CFLAGS = -lm
extra_CFLAGS = -fopenmp

### all rules
all: $(bin_PROGRAMS)

### Build rules for target programs
$(slipmodel_conversion_PROGRAM): $(slipmodel_conversion_SOURCES)
	gcc -o $@ $^ ${CFLAGS}

$(probmaps_PROGRAM): $(probmaps_SOURCES)
	gcc -o $@ $^ ${CFLAGS} ${extra_CFLAGS}

$(forecast_PROGRAM): $(forecast_SOURCES)
	gcc -o $@ $^ ${CFLAGS} -O3


### Intall rules
install: all
ifeq '$(DESTDIR)' ''
else
	@echo destdir=$(DESTDIR)/src/SCECModels/NewZealand/src/HainzlModels
	mkdir -p $(DESTDIR)/src/SCECModels/NewZealand/src/HainzlModels;
	cp $(bin_PROGRAMS) $(DESTDIR)/src/SCECModels/NewZealand/src/HainzlModels;
	rsync -aC $(model_SCRIPTS) $(DESTDIR)/src/SCECModels/NewZealand/src/HainzlModels;
	rsync -aC $(model_DATA) $(DESTDIR)/src/SCECModels/NewZealand/src/HainzlModels;
endif


### Clean rules
clean:
	rm -f $(bin_PROGRAMS)

### Test Clean rules - do nothing
testclean:

### Check rules - do nothing
check:
