CC = g++
OPTN = -O3

all		:	strc_I2O strc_O2I strc_O2E strc_O2O strc_PING2O analyze sim_OIO

results		:	strc_IO.out strc_OO.out strc_OI.out strc_OE.out strc_EIO.out analyze
			./analyze

tables.o	:	tables.c tables.h
			$(CC) $(OPTN) -c tables.c
neuron.o	:	neuron.c neuron.h 
			$(CC) $(OPTN) -c neuron.c
models.o	:	models.c models.h neuron.o
			$(CC) $(OPTN) -c models.c
function.o      :	function.c 
			$(CC) $(OPTN) -c function.c


strc_I2O		:	strc_I2O.c models.o neuron.o tables.o
			$(CC) $(OPTN) -o strc_I2O strc_I2O.c models.o neuron.o tables.o
strc_O2O		:	strc_O2O.c models.o neuron.o tables.o
			$(CC) $(OPTN) -o strc_O2O strc_O2O.c models.o neuron.o tables.o
strc_O2I		:	strc_O2I.c models.o neuron.o tables.o
			$(CC) $(OPTN) -o strc_O2I strc_O2I.c models.o neuron.o tables.o
strc_O2E		:	strc_O2E.c models.o neuron.o tables.o
			$(CC) $(OPTN) -o strc_O2E strc_O2E.c models.o neuron.o tables.o
strc_PING2O	:	strc_PING2O.c models.o neuron.o tables.o
			$(CC) $(OPTN) -o strc_PING2O strc_PING2O.c models.o neuron.o tables.o

analyze		:	analyze.c function.o
			$(CC) $(OPTN) -o analyze analyze.c function.o
sim_OIO		:	sim_OIO.c models.o neuron.o tables.o
			$(CC) $(OPTN) -o sim_OIO sim_OIO.c models.o neuron.o tables.o

strc_IO.out	:	strc_I2O
			./strc_I2O
strc_OO.out	:	strc_O2O
			./strc_O2O
strc_OI.out	:	strc_O2I
			./strc_O2I
strc_OE.out	:	strc_O2E
			./strc_O2E
strc_EIO.out	:	strc_PING2O
			./strc_PING2O

clean		:	
			rm -f tables.o neuron.o models.o strc_I2O strc_O2O strc_O2I strc_O2E analyze function.o strc_PING2O sim_OIO
			rm -f strc_IO.out strc_OO.out strc_OI.out strc_OE.out strc_EIO.out stdm_EIO.out stdm_IO.out stdm_OO.out
