CXXFLAGS="-O2 -mmmx -msse -msse2"

all: double float real_double real_float mt_float mt_double mt_real_double mt_real_float

double:
	g++ ${CXXFLAGS} conv_opt.cc -o conv_double -lfftw3 -lsndfile -lm

float:
	g++ ${CXXFLAGS} conv_opt.cc -o conv_float -DFFTW_FLOAT -lfftw3f -lsndfile -lm

real_double:
	g++ ${CXXFLAGS} conv_opt.cc -o conv_real_double -lfftw3 -lsndfile -lm -DUSE_REAL

real_float:
	g++ ${CXXFLAGS} conv_opt.cc -o conv_real_float -DFFTW_FLOAT -lfftw3f -lsndfile -lm -DUSE_REAL

mt_double:
	g++ ${CXXFLAGS} conv_opt.cc -o conv_mt_double -lfftw3 -lsndfile -lm -lpthread -lfftw3_threads -DFFTW_THREADS

mt_float:
	g++ ${CXXFLAGS} conv_opt.cc -o conv_mt_float -DFFTW_FLOAT -lfftw3f -lsndfile -lm -lpthread -lfftw3f_threads -DFFTW_THREADS

mt_real_double:
	g++ ${CXXFLAGS} conv_opt.cc -o conv_mt_real_double -lfftw3 -lsndfile -lm -lpthread -lfftw3_threads -DFFTW_THREADS -DUSE_REAL

mt_real_float:
	g++ ${CXXFLAGS} conv_opt.cc -o conv_mt_real_float -DFFTW_FLOAT -lfftw3f -lsndfile -lm -lpthread -lfftw3f_threads -DFFTW_THREADS -DUSE_REAL

clean:
	rm -f conv_double conv_float conv_real_double conv_real_float conv_mt_double conv_mt_float conv_mt_real_double conv_mt_real_float
