DEBUG= 
MEXFLAGS= $(DEBUG) -O -f /usr/local/MATLAB/R2010b/bin/engopts.sh -lmat
MEX=/usr/local/MATLAB/R2010b/bin/mex
INCLUDE=-I. -I/usr/local/MATLAB/R2010b/extern/include
CFLAGS += $(DEBUG) -march=native -O3 -ftree-vectorize -mfpmath=sse -ffast-math -funroll-loops
LIBS=-lpthread

all: Program_signaling_matlab Counterfactuals_matlab Realdata_counterfactual_matlab Goodness_of_fit_matlab
Program_signaling_matlab: Program_signaling.o cuda_generator.o Program_signaling_matlab.c Program_signaling.h
	$(MEX) $(MEXFLAGS) $(INCLUDE) Program_signaling_matlab.c Program_signaling.o cuda_generator.o
Counterfactuals_matlab: Program_signaling.o cuda_generator.o Counterfactuals_matlab.c counterfactuals.o Program_signaling.h
	$(MEX) $(MEXFLAGS) $(INCLUDE) Counterfactuals_matlab.c Program_signaling.o cuda_generator.o counterfactuals.o
Realdata_counterfactual_matlab: Realdata_counterfactual_matlab.c Program_signaling.o cuda_generator.o realdata_counter.o Program_signaling.h
	$(MEX) $(MEXFLAGS) $(INCLUDE) Realdata_counterfactual_matlab.c Program_signaling.o cuda_generator.o realdata_counter.o
Goodness_of_fit_matlab: Goodness_of_fit_matlab.c Program_signaling.o cuda_generator.o goodness_of_fit.o Program_signaling.h
	$(MEX) $(MEXFLAGS) $(INCLUDE) Goodness_of_fit_matlab.c Program_signaling.o cuda_generator.o goodness_of_fit.o
Program_signaling.o: Program_signaling.c Program_signaling.h
	$(CC) $(CFLAGS) $(INCLUDE) -c Program_signaling.c
cuda_generator.o: cuda_generator.c cuda_generator.h
	$(CC) $(CFLAGS) $(INCLUDE) -c cuda_generator.c
counterfactuals.o: counterfactuals.c Program_signaling.h
	$(CC) $(CFLAGS) $(INCLUDE) -g -c counterfactuals.c
realdata_counter.o: realdata_counter.c Program_signaling.h
	$(CC) $(CFLAGS) $(INCLUDE) -g -c realdata_counter.c
goodness_of_fit.o: goodness_of_fit.c Program_signaling.h
	$(CC) $(CFLAGS) $(INCLUDE) -g -c goodness_of_fit.c
