CXX = mpicxx
TYPE = ethernet
#take out form -I to 03 resp -L to end of line 
# Flags for the compiler.
CXX_FLAGS := -ansi -O3 -flto -std=c++11
# Flags for the linker
LDFLAGS := -ansi 
#following only relevant for cluster 
#ifeq ($(TYPE),infini)
#CXX_FLAGS := $(subst fftw3.3,fftw3.3_infiniband,$(CXX_FLAGS))
#LDFLAGS := $(subst fftw3.3,fftw3.3_infiniband,$(LDFLAGS))
#endif

# Libraries used
LIBRARIES := -lm

SOURCES=launcher.cpp morphogens.cpp spectra.cpp file.cpp update.cpp stats.cpp initwalk.cpp boundaries.cpp printer.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=morphogens.x

##########################################################################

all: $(EXECUTABLE)
	
$(EXECUTABLE): $(OBJECTS)
	$(CXX) $(OBJECTS) $(LDFLAGS) $(LIBRARIES) -o $@

.cpp.o:
	$(CXX) $(CXX_FLAGS) -c $< -o $@

##########################################################################

tidy:
	rm -f *.o *.btr 

clean:
	make tidy
	rm -f *.x

grower:
	make CXX_FLAGS="$(CXX_FLAGS) -DGROWDOMAIN"

feeder:
	make CXX_FLAGS="$(CXX_FLAGS) -DIFEEDMYSELF"

growfeed:
	make CXX_FLAGS="$(CXX_FLAGS) -DIFEEDMYSELF -DGROWDOMAIN"

signalnoise:
	make CXX_FLAGS="$(CXX_FLATS) -DGROWDOMAIN -DSIGNALNOISE"

initnoisealt:
	make CXX_FLAGS="$(CXX_FLATS) -DGROWDOMAIN -DINITNOISEALT"

initnoise:
	make CXX_FLAGS="$(CXX_FLATS) -DGROWDOMAIN -DINITNOISE"

superfourteen:
	make CXX_FLAGS="$(CXX_FLATS) -DGROWDOMAIN -DSUPERFOURTEEN"

timers:
	make CXX_FLAGS="$(CXX_FLATS) -DGROWDOMAIN -DTIMER"

notochord:
	make CXX_FLAGS="$(CXX_FLATS) -DGROWDOMAIN -DNOTOCHORD"

timernotochord:
	make CXX_FLAGS="$(CXX_FLATS) -DGROWDOMAIN -DNOTOCHORD -DTIMER"

supernotochord:
	make CXX_FLAGS="$(CXX_FLATS) -DGROWDOMAIN -DNOTOCHORD -DSUPERFOURTEEN"

explore:
	make CXX_FLAGS="$(CXX_FLATS) -DGROWDOMAIN -DIFEEDMYSELF"

current:
	make CXX_FLAGS="$(CXX_FLATS) -DGROWDOMAIN -DIFEEDMYSELF"

