annotate src/ext/kissfft/test/Makefile @ 196:da283326bcd3 tip master

Update plugin versions in RDF
author Chris Cannam <cannam@all-day-breakfast.com>
date Fri, 28 Feb 2020 09:43:02 +0000
parents 5ed6e970541b
children
rev   line source
c@174 1
c@174 2 WARNINGS=-W -Wall -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return \
c@174 3 -Wcast-align -Wcast-qual -Wnested-externs -Wshadow -Wbad-function-cast \
c@174 4 -Wwrite-strings
c@174 5
c@174 6 CFLAGS=-O3 -I.. -I../tools $(WARNINGS)
c@174 7 CFLAGS+=-ffast-math -fomit-frame-pointer
c@174 8 #CFLAGS+=-funroll-loops
c@174 9 #CFLAGS+=-march=prescott
c@174 10 #CFLAGS+= -mtune=native
c@174 11 # TIP: try adding -openmp or -fopenmp to enable OPENMP directives and use of multiple cores
c@174 12 #CFLAGS+=-fopenmp
c@174 13 CFLAGS+= $(CFLAGADD)
c@174 14
c@174 15
c@174 16 ifeq "$(NFFT)" ""
c@174 17 NFFT=1800
c@174 18 endif
c@174 19 ifeq "$(NUMFFTS)" ""
c@174 20 NUMFFTS=10000
c@174 21 endif
c@174 22
c@174 23 ifeq "$(DATATYPE)" ""
c@174 24 DATATYPE=float
c@174 25 endif
c@174 26
c@174 27 BENCHKISS=bm_kiss_$(DATATYPE)
c@174 28 BENCHFFTW=bm_fftw_$(DATATYPE)
c@174 29 SELFTEST=st_$(DATATYPE)
c@174 30 TESTREAL=tr_$(DATATYPE)
c@174 31 TESTKFC=tkfc_$(DATATYPE)
c@174 32 FASTFILTREAL=ffr_$(DATATYPE)
c@174 33 SELFTESTSRC=twotonetest.c
c@174 34
c@174 35
c@174 36 TYPEFLAGS=-Dkiss_fft_scalar=$(DATATYPE)
c@174 37
c@174 38 ifeq "$(DATATYPE)" "int16_t"
c@174 39 TYPEFLAGS=-DFIXED_POINT=16
c@174 40 endif
c@174 41
c@174 42 ifeq "$(DATATYPE)" "int32_t"
c@174 43 TYPEFLAGS=-DFIXED_POINT=32
c@174 44 endif
c@174 45
c@174 46 ifeq "$(DATATYPE)" "simd"
c@174 47 TYPEFLAGS=-DUSE_SIMD=1 -msse
c@174 48 endif
c@174 49
c@174 50
c@174 51 ifeq "$(DATATYPE)" "float"
c@174 52 # fftw needs to be built with --enable-float to build this lib
c@174 53 FFTWLIB=-lfftw3f
c@174 54 else
c@174 55 FFTWLIB=-lfftw3
c@174 56 endif
c@174 57
c@174 58 FFTWLIBDIR=-L/usr/local/lib/
c@174 59
c@174 60 SRCFILES=../kiss_fft.c ../tools/kiss_fftnd.c ../tools/kiss_fftr.c pstats.c ../tools/kfc.c ../tools/kiss_fftndr.c
c@174 61
c@174 62 all: tools $(BENCHKISS) $(SELFTEST) $(BENCHFFTW) $(TESTREAL) $(TESTKFC)
c@174 63
c@174 64 tools:
c@174 65 cd ../tools && make all
c@174 66
c@174 67
c@174 68 $(SELFTEST): $(SELFTESTSRC) $(SRCFILES)
c@174 69 $(CC) -o $@ $(CFLAGS) $(TYPEFLAGS) $+ -lm
c@174 70
c@174 71 $(TESTKFC): $(SRCFILES)
c@174 72 $(CC) -o $@ $(CFLAGS) -DKFC_TEST $(TYPEFLAGS) $+ -lm
c@174 73
c@174 74 $(TESTREAL): test_real.c $(SRCFILES)
c@174 75 $(CC) -o $@ $(CFLAGS) $(TYPEFLAGS) $+ -lm
c@174 76
c@174 77 $(BENCHKISS): benchkiss.c $(SRCFILES)
c@174 78 $(CC) -o $@ $(CFLAGS) $(TYPEFLAGS) $+ -lm
c@174 79
c@174 80 $(BENCHFFTW): benchfftw.c pstats.c
c@174 81 @echo "======attempting to build FFTW benchmark"
c@174 82 @$(CC) -o $@ $(CFLAGS) -DDATATYPE$(DATATYPE) $+ $(FFTWLIB) $(FFTWLIBDIR) -lm || echo "FFTW not available for comparison"
c@174 83
c@174 84 test: all
c@174 85 @./$(TESTKFC)
c@174 86 @echo "======1d & 2-d complex fft self test (type= $(DATATYPE) )"
c@174 87 @./$(SELFTEST)
c@174 88 @echo "======real FFT (type= $(DATATYPE) )"
c@174 89 @./$(TESTREAL)
c@174 90 @echo "======timing test (type=$(DATATYPE))"
c@174 91 @./$(BENCHKISS) -x $(NUMFFTS) -n $(NFFT)
c@174 92 @[ -x ./$(BENCHFFTW) ] && ./$(BENCHFFTW) -x $(NUMFFTS) -n $(NFFT) ||true
c@174 93 @echo "======higher dimensions type=$(DATATYPE))"
c@174 94 @./testkiss.py
c@174 95
c@174 96 selftest.c:
c@174 97 ./mk_test.py 10 12 14 > selftest.c
c@174 98 selftest_short.c:
c@174 99 ./mk_test.py -s 10 12 14 > selftest_short.c
c@174 100
c@174 101
c@174 102 CXXFLAGS=-O3 -ffast-math -fomit-frame-pointer -I.. -I../tools -W -Wall
c@174 103 testcpp: testcpp.cc ../kissfft.hh
c@174 104 $(CXX) -o $@ $(CXXFLAGS) testcpp.cc -lm
c@174 105
c@174 106
c@174 107 clean:
c@174 108 rm -f *~ bm_* st_* tr_* kf_* tkfc_* ff_* ffr_* *.pyc *.pyo *.dat testcpp