PROG = FFT_bench
CC = gcc
CFLAGS = -std=c99 -W -Wall
LIBS = -lm

.PHONY: fftwf fftwd fftwl kiss16 kiss32 kissf

fftwf: main.c
	$(CC) $(CFLAGS) $^ -o $(PROG) -DFFTW -DFLOAT -lfftw3f -lfftw3_threads
	time ./$(PROG)
fftwd: main.c
	$(CC) $(CFLAGS) $^ -o $(PROG) -DFFTW -DDOUBLE -lfftw3 -lfftw3_threads
	time ./$(PROG)
fftwl: main.c
	$(CC) $(CFLAGS) $^ -o $(PROG) -DFFTW -DLDOUBLE -lfftw3l -lfftw3_threads
	time ./$(PROG)
kiss16: main.c kiss_fft130/kiss_fft.c
	$(CC) $(CFLAGS) $^ -o $(PROG) -DFIXED_POINT=16 -DKISSFFT -DINT16 -lm
	time ./$(PROG)
kiss32: main.c kiss_fft130/kiss_fft.c
	$(CC) $(CFLAGS) $^ -o $(PROG) -DFIXED_POINT=32 -DKISSFFT -DINT32 -lm
	time ./$(PROG)
kissf: main.c kiss_fft130/kiss_fft.c
	$(CC) $(CFLAGS) $^ -o $(PROG)  -DKISSFFT -DFLOAT -lm
	time ./$(PROG)

clean:
	rm FFT_bench

