kissfft/tools/Makefile
2003-10-18 01:23:34 +00:00

47 lines
1.2 KiB
Makefile

NFFT=840
ALLUTILS=kfft kffts kfftd
NUMFFTS=10000
UTILSRC=../kiss_fft.c fftutil.c
CFLAGS=-Wall -O3 -lm -I.. -ansi -DFUNCDECL= -pedantic
all: $(ALLUTILS)
kfft: $(UTILSRC)
echo $(FUNCDECL)
gcc -o $@ $(CFLAGS) $(UTILSRC)
kffts: $(UTILSRC)
gcc -o $@ $(CFLAGS) -DFIXED_POINT $(UTILSRC)
kfftd: $(UTILSRC)
gcc -o $@ $(CFLAGS) -Dkiss_fft_scalar=double $(UTILSRC)
time: all
@echo
@echo "#### timing $(NUMFFTS) x $(NFFT) point FFTs"
@echo "#### DOUBLE"
@time -f 'Elapsed:%E user:%U sys:%S' \
sh -c 'dd if=/dev/zero bs=$$((16*$(NFFT))) count=$(NUMFFTS) 2>/dev/null |./kfftd>/dev/null'
@echo "#### FLOAT"
@time -f 'Elapsed:%E user:%U sys:%S' \
sh -c 'dd if=/dev/zero bs=$$((8*$(NFFT))) count=$(NUMFFTS) 2>/dev/null |./kfft>/dev/null'
@echo "#### SHORT"
@time -f 'Elapsed:%E user:%U sys:%S' \
sh -c 'dd if=/dev/zero bs=$$((4*$(NFFT))) count=$(NUMFFTS) 2>/dev/null |./kffts>/dev/null'
snr: all
@which octave
@echo
@echo "### testing SNR for $(NFFT) point FFTs"
@echo "#### DOUBLE"
@echo "testkiss($(NFFT),'double',1,1/$(NFFT));" | octave -q
@echo "#### FLOAT"
@echo "testkiss($(NFFT),'float',1,1/$(NFFT));" | octave -q
@echo "#### SHORT"
@echo "testkiss($(NFFT),'short',$(NFFT),$(NFFT));" | octave -q
test: snr time
clean:
rm -f $(ALLUTILS) *.dat *~