Makefile
上传用户:ozl2332
上传日期:2009-12-28
资源大小:38k
文件大小:2k
源码类别:

语音压缩

开发平台:

C/C++

  1. WARNINGS=-W -Wall -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return 
  2.     -Wcast-align -Wcast-qual -Wnested-externs -Wshadow -Wbad-function-cast 
  3.     -Wwrite-strings
  4. ifeq "$(NFFT)" ""
  5.  NFFT=1800
  6. endif
  7. ifeq "$(NUMFFTS)" ""
  8.  NUMFFTS=10000
  9. endif
  10. ifeq "$(DATATYPE)" ""
  11.  DATATYPE=float
  12. endif
  13. BENCHKISS=bm_kiss_$(DATATYPE)
  14. BENCHFFTW=bm_fftw_$(DATATYPE)
  15. SELFTEST=st_$(DATATYPE)
  16. TESTREAL=tr_$(DATATYPE)
  17. TESTKFC=tkfc_$(DATATYPE)
  18. FASTFILT=ff_$(DATATYPE)
  19. FASTFILTREAL=ffr_$(DATATYPE)
  20. ifeq  "$(DATATYPE)" "short"
  21.  TYPEFLAGS=-DFIXED_POINT -Dkiss_fft_scalar=short
  22.  SELFTESTSRC=selftest_short.c
  23. else
  24.  TYPEFLAGS=-Dkiss_fft_scalar=$(DATATYPE)
  25.  SELFTESTSRC=selftest.c
  26. endif
  27. ifeq  "$(DATATYPE)" "float"
  28. # fftw needs to be built with --enable-float to build this lib
  29.  FFTWLIB=fftw3f
  30. else
  31.  FFTWLIB=fftw3
  32. endif
  33. SRCFILES=../kiss_fft.c ../tools/kiss_fftnd.c ../tools/kiss_fftr.c pstats.c ../tools/kfc.c
  34. all: tools $(BENCHKISS) $(SELFTEST) $(BENCHFFTW) $(TESTREAL) $(TESTKFC)
  35. tools:
  36. cd ../tools && make all
  37. # for x86 pentium+ machines , these flags work well
  38. #CFLAGS=-Wall -O3 -pedantic -march=pentiumpro -ffast-math -fomit-frame-pointer   -I.. -I../tools $(WARNINGS)
  39. # If the above flags do not work, try the following
  40. CFLAGS=-Wall -O3 -I.. -I../tools $(WARNINGS)
  41. $(SELFTEST): $(SELFTESTSRC) $(SRCFILES)
  42. $(CC) -o $@ $(CFLAGS) $(TYPEFLAGS) -lm $+
  43. $(TESTKFC): $(SRCFILES) 
  44. $(CC) -o $@ $(CFLAGS)  -DKFC_TEST $(TYPEFLAGS) -lm $+
  45. $(TESTREAL): test_real.c $(SRCFILES)
  46. $(CC) -o $@ $(CFLAGS) $(TYPEFLAGS) -lm $+
  47. $(BENCHKISS): benchkiss.c $(SRCFILES)
  48. $(CC) -o $@ $(CFLAGS) $(TYPEFLAGS) -lm  $+
  49. $(BENCHFFTW): benchfftw.c pstats.c
  50. @echo "======attempting to build FFTW benchmark"
  51. @$(CC) -o $@ $(CFLAGS) -DDATATYPE$(DATATYPE) $+ -lm -l$(FFTWLIB) -L/usr/local/lib/ || echo "FFTW not available for comparison"
  52. test: all
  53. @./$(TESTKFC)
  54. @echo "======1d & 2-d complex fft self test (type= $(DATATYPE) )"
  55. @./$(SELFTEST)
  56. @echo "======real FFT (type= $(DATATYPE) )"
  57. @./$(TESTREAL)
  58. @echo "======timing test (type=$(DATATYPE))"
  59. @./$(BENCHKISS) -x $(NUMFFTS) -n $(NFFT) 
  60. @[ -x ./$(BENCHFFTW) ] && ./$(BENCHFFTW) -x $(NUMFFTS) -n $(NFFT) ||true
  61. @echo "======higher dimensions type=$(DATATYPE))"
  62. @./testkiss.py
  63. selftest.c:
  64. ./mk_test.py 10 12 14 > selftest.c
  65. selftest_short.c:
  66. ./mk_test.py -s 10 12 14 > selftest_short.c
  67. clean:
  68. rm -f *~ bm_* st_* tr_* kf_* tkfc_* ff_* ffr_* *.pyc *.pyo *.dat