cannam@127: # This Makefile.am specifies a set of codelets, efficient transforms cannam@127: # of small sizes, that are used as building blocks (kernels) by FFTW cannam@127: # to build up large transforms, as well as the options for generating cannam@127: # and compiling them. cannam@127: cannam@127: # You can customize FFTW for special needs, e.g. to handle certain cannam@127: # sizes more efficiently, by adding new codelets to the lists of those cannam@127: # included by default. If you change the list of codelets, any new cannam@127: # ones you added will be automatically generated when you run the cannam@127: # bootstrap script (see "Generating your own code" in the FFTW cannam@127: # manual). cannam@127: cannam@127: ########################################################################### cannam@127: AM_CPPFLAGS = -I$(top_srcdir)/kernel -I$(top_srcdir)/rdft \ cannam@127: -I$(top_srcdir)/rdft/scalar cannam@127: noinst_LTLIBRARIES = librdft_scalar_r2cf.la cannam@127: cannam@127: ########################################################################### cannam@127: # r2cf_ is a hard-coded real-to-complex FFT of size (base cases cannam@127: # of real-input FFT recursion) cannam@127: R2CF = r2cf_2.c r2cf_3.c r2cf_4.c r2cf_5.c r2cf_6.c r2cf_7.c r2cf_8.c \ cannam@127: r2cf_9.c r2cf_10.c r2cf_11.c r2cf_12.c r2cf_13.c r2cf_14.c r2cf_15.c \ cannam@127: r2cf_16.c r2cf_32.c r2cf_64.c r2cf_128.c \ cannam@127: r2cf_20.c r2cf_25.c # r2cf_30.c r2cf_40.c r2cf_50.c cannam@127: cannam@127: ########################################################################### cannam@127: # hf_ is a "twiddle" FFT of size , implementing a radix-r DIT cannam@127: # step for a real-input FFT. Every hf codelet must have a cannam@127: # corresponding r2cfII codelet (see below)! cannam@127: HF = hf_2.c hf_3.c hf_4.c hf_5.c hf_6.c hf_7.c hf_8.c hf_9.c \ cannam@127: hf_10.c hf_12.c hf_15.c hf_16.c hf_32.c hf_64.c \ cannam@127: hf_20.c hf_25.c # hf_30.c hf_40.c hf_50.c cannam@127: cannam@127: # like hf, but generates part of its trig table on the fly (good for large n) cannam@127: HF2 = hf2_4.c hf2_8.c hf2_16.c hf2_32.c \ cannam@127: hf2_5.c hf2_20.c hf2_25.c cannam@127: cannam@127: # an r2cf transform where the input is shifted by half a sample (output cannam@127: # is multiplied by a phase). This is needed as part of the DIT recursion; cannam@127: # every hf_ or hf2_ codelet should have a corresponding r2cfII_ cannam@127: R2CFII = r2cfII_2.c r2cfII_3.c r2cfII_4.c r2cfII_5.c r2cfII_6.c \ cannam@127: r2cfII_7.c r2cfII_8.c r2cfII_9.c r2cfII_10.c r2cfII_12.c r2cfII_15.c \ cannam@127: r2cfII_16.c r2cfII_32.c r2cfII_64.c \ cannam@127: r2cfII_20.c r2cfII_25.c # r2cfII_30.c r2cfII_40.c r2cfII_50.c cannam@127: cannam@127: ########################################################################### cannam@127: # hc2cf_ is a "twiddle" FFT of size , implementing a radix-r DIT cannam@127: # step for a real-input FFT with rdft2-style output. must be even. cannam@127: HC2CF = hc2cf_2.c hc2cf_4.c hc2cf_6.c hc2cf_8.c hc2cf_10.c hc2cf_12.c \ cannam@127: hc2cf_16.c hc2cf_32.c \ cannam@127: hc2cf_20.c # hc2cf_30.c cannam@127: cannam@127: HC2CFDFT = hc2cfdft_2.c hc2cfdft_4.c hc2cfdft_6.c hc2cfdft_8.c \ cannam@127: hc2cfdft_10.c hc2cfdft_12.c hc2cfdft_16.c hc2cfdft_32.c \ cannam@127: hc2cfdft_20.c # hc2cfdft_30.c cannam@127: cannam@127: # like hc2cf, but generates part of its trig table on the fly (good cannam@127: # for large n) cannam@127: HC2CF2 = hc2cf2_4.c hc2cf2_8.c hc2cf2_16.c hc2cf2_32.c \ cannam@127: hc2cf2_20.c # hc2cf2_30.c cannam@127: HC2CFDFT2 = hc2cfdft2_4.c hc2cfdft2_8.c hc2cfdft2_16.c hc2cfdft2_32.c \ cannam@127: hc2cfdft2_20.c # hc2cfdft2_30.c cannam@127: cannam@127: ########################################################################### cannam@127: ALL_CODELETS = $(R2CF) $(HF) $(HF2) $(R2CFII) $(HC2CF) $(HC2CF2) \ cannam@127: $(HC2CFDFT) $(HC2CFDFT2) cannam@127: cannam@127: BUILT_SOURCES= $(ALL_CODELETS) $(CODLIST) cannam@127: cannam@127: librdft_scalar_r2cf_la_SOURCES = $(BUILT_SOURCES) cannam@127: cannam@127: SOLVTAB_NAME = X(solvtab_rdft_r2cf) cannam@127: XRENAME=X cannam@127: cannam@127: # special rules for regenerating codelets. cannam@127: include $(top_srcdir)/support/Makefile.codelets cannam@127: cannam@127: if MAINTAINER_MODE cannam@127: FLAGS_R2CF=$(RDFT_FLAGS_COMMON) cannam@127: FLAGS_HF=$(RDFT_FLAGS_COMMON) cannam@127: FLAGS_HF2=$(RDFT_FLAGS_COMMON) -twiddle-log3 -precompute-twiddles cannam@127: FLAGS_HC2CF=$(RDFT_FLAGS_COMMON) cannam@127: FLAGS_HC2CF2=$(RDFT_FLAGS_COMMON) -twiddle-log3 -precompute-twiddles cannam@127: FLAGS_R2CFII=$(RDFT_FLAGS_COMMON) cannam@127: cannam@127: r2cf_%.c: $(CODELET_DEPS) $(GEN_R2CF) cannam@127: ($(PRELUDE_COMMANDS_RDFT); $(TWOVERS) $(GEN_R2CF) $(FLAGS_R2CF) -n $* -name r2cf_$* -include "r2cf.h") | $(ADD_DATE) | $(INDENT) >$@ cannam@127: cannam@127: hf_%.c: $(CODELET_DEPS) $(GEN_HC2HC) cannam@127: ($(PRELUDE_COMMANDS_RDFT); $(TWOVERS) $(GEN_HC2HC) $(FLAGS_HF) -n $* -dit -name hf_$* -include "hf.h") | $(ADD_DATE) | $(INDENT) >$@ cannam@127: cannam@127: hf2_%.c: $(CODELET_DEPS) $(GEN_HC2HC) cannam@127: ($(PRELUDE_COMMANDS_RDFT); $(TWOVERS) $(GEN_HC2HC) $(FLAGS_HF2) -n $* -dit -name hf2_$* -include "hf.h") | $(ADD_DATE) | $(INDENT) >$@ cannam@127: cannam@127: r2cfII_%.c: $(CODELET_DEPS) $(GEN_R2CF) cannam@127: ($(PRELUDE_COMMANDS_RDFT); $(TWOVERS) $(GEN_R2CF) $(FLAGS_R2CF) -n $* -name r2cfII_$* -dft-II -include "r2cfII.h") | $(ADD_DATE) | $(INDENT) >$@ cannam@127: cannam@127: hc2cf_%.c: $(CODELET_DEPS) $(GEN_HC2C) cannam@127: ($(PRELUDE_COMMANDS_RDFT); $(TWOVERS) $(GEN_HC2C) $(FLAGS_HC2CF) -n $* -dit -name hc2cf_$* -include "hc2cf.h") | $(ADD_DATE) | $(INDENT) >$@ cannam@127: cannam@127: hc2cf2_%.c: $(CODELET_DEPS) $(GEN_HC2C) cannam@127: ($(PRELUDE_COMMANDS_RDFT); $(TWOVERS) $(GEN_HC2C) $(FLAGS_HC2CF2) -n $* -dit -name hc2cf2_$* -include "hc2cf.h") | $(ADD_DATE) | $(INDENT) >$@ cannam@127: cannam@127: hc2cfdft_%.c: $(CODELET_DEPS) $(GEN_HC2CDFT) cannam@127: ($(PRELUDE_COMMANDS_RDFT); $(TWOVERS) $(GEN_HC2CDFT) $(FLAGS_HC2CF) -n $* -dit -name hc2cfdft_$* -include "hc2cf.h") | $(ADD_DATE) | $(INDENT) >$@ cannam@127: cannam@127: hc2cfdft2_%.c: $(CODELET_DEPS) $(GEN_HC2CDFT) cannam@127: ($(PRELUDE_COMMANDS_RDFT); $(TWOVERS) $(GEN_HC2CDFT) $(FLAGS_HC2CF2) -n $* -dit -name hc2cfdft2_$* -include "hc2cf.h") | $(ADD_DATE) | $(INDENT) >$@ cannam@127: cannam@127: endif # MAINTAINER_MODE