annotate src/fftw-3.3.8/dft/scalar/codelets/Makefile.am @ 83:ae30d91d2ffe

Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author Chris Cannam
date Fri, 07 Feb 2020 11:51:13 +0000
parents d0c2a83c1364
children
rev   line source
Chris@82 1 # This Makefile.am specifies a set of codelets, efficient transforms
Chris@82 2 # of small sizes, that are used as building blocks (kernels) by FFTW
Chris@82 3 # to build up large transforms, as well as the options for generating
Chris@82 4 # and compiling them.
Chris@82 5
Chris@82 6 # You can customize FFTW for special needs, e.g. to handle certain
Chris@82 7 # sizes more efficiently, by adding new codelets to the lists of those
Chris@82 8 # included by default. If you change the list of codelets, any new
Chris@82 9 # ones you added will be automatically generated when you run the
Chris@82 10 # bootstrap script (see "Generating your own code" in the FFTW
Chris@82 11 # manual).
Chris@82 12
Chris@82 13 ###########################################################################
Chris@82 14 AM_CPPFLAGS = -I $(top_srcdir)
Chris@82 15 noinst_LTLIBRARIES = libdft_scalar_codelets.la
Chris@82 16
Chris@82 17 ###########################################################################
Chris@82 18 # n1_<n> is a hard-coded FFT of size <n> (base cases of FFT recursion)
Chris@82 19 N1 = n1_2.c n1_3.c n1_4.c n1_5.c n1_6.c n1_7.c n1_8.c n1_9.c n1_10.c \
Chris@82 20 n1_11.c n1_12.c n1_13.c n1_14.c n1_15.c n1_16.c n1_32.c n1_64.c \
Chris@82 21 n1_20.c n1_25.c # n1_30.c n1_40.c n1_50.c
Chris@82 22
Chris@82 23 ###########################################################################
Chris@82 24 # t1_<r> is a "twiddle" FFT of size <r>, implementing a radix-r DIT step
Chris@82 25 T1 = t1_2.c t1_3.c t1_4.c t1_5.c t1_6.c t1_7.c t1_8.c t1_9.c \
Chris@82 26 t1_10.c t1_12.c t1_15.c t1_16.c t1_32.c t1_64.c \
Chris@82 27 t1_20.c t1_25.c # t1_30.c t1_40.c t1_50.c
Chris@82 28
Chris@82 29 # t2_<r> is also a twiddle FFT, but instead of using a complete lookup table
Chris@82 30 # of trig. functions, it partially generates the trig. values on the fly
Chris@82 31 # (this is faster for large sizes).
Chris@82 32 T2 = t2_4.c t2_8.c t2_16.c t2_32.c t2_64.c \
Chris@82 33 t2_5.c t2_10.c t2_20.c t2_25.c
Chris@82 34
Chris@82 35 ###########################################################################
Chris@82 36 # The F (DIF) codelets are used for a kind of in-place transform algorithm,
Chris@82 37 # but the planner seems to never (or hardly ever) use them on the machines
Chris@82 38 # we have access to, preferring the Q codelets and the use of buffers
Chris@82 39 # for sub-transforms. So, we comment them out, at least for now.
Chris@82 40
Chris@82 41 # f1_<r> is a "twiddle" FFT of size <r>, implementing a radix-r DIF step
Chris@82 42 F1 = # f1_2.c f1_3.c f1_4.c f1_5.c f1_6.c f1_7.c f1_8.c f1_9.c f1_10.c f1_12.c f1_15.c f1_16.c f1_32.c f1_64.c
Chris@82 43
Chris@82 44 # like f1, but partially generates its trig. table on the fly
Chris@82 45 F2 = # f2_4.c f2_8.c f2_16.c f2_32.c f2_64.c
Chris@82 46
Chris@82 47 ###########################################################################
Chris@82 48 # q1_<r> is <r> twiddle FFTs of size <r> (DIF step), where the output is
Chris@82 49 # transposed. This is used for in-place transposes in sizes that are
Chris@82 50 # divisible by <r>^2. These codelets have size ~ <r>^2, so you should
Chris@82 51 # probably not use <r> bigger than 8 or so.
Chris@82 52 Q1 = q1_2.c q1_4.c q1_8.c q1_3.c q1_5.c q1_6.c
Chris@82 53
Chris@82 54 ###########################################################################
Chris@82 55 ALL_CODELETS = $(N1) $(T1) $(T2) $(F1) $(F2) $(Q1)
Chris@82 56 BUILT_SOURCES= $(ALL_CODELETS) $(CODLIST)
Chris@82 57
Chris@82 58 libdft_scalar_codelets_la_SOURCES = $(BUILT_SOURCES)
Chris@82 59
Chris@82 60 SOLVTAB_NAME = X(solvtab_dft_standard)
Chris@82 61 XRENAME=X
Chris@82 62
Chris@82 63 # special rules for regenerating codelets.
Chris@82 64 include $(top_srcdir)/support/Makefile.codelets
Chris@82 65
Chris@82 66 if MAINTAINER_MODE
Chris@82 67 FLAGS_N1=$(DFT_FLAGS_COMMON)
Chris@82 68 FLAGS_T1=$(DFT_FLAGS_COMMON)
Chris@82 69 FLAGS_T2=$(DFT_FLAGS_COMMON) -twiddle-log3 -precompute-twiddles
Chris@82 70 FLAGS_F1=$(DFT_FLAGS_COMMON)
Chris@82 71 FLAGS_F2=$(DFT_FLAGS_COMMON) -twiddle-log3 -precompute-twiddles
Chris@82 72 FLAGS_Q1=$(DFT_FLAGS_COMMON) -reload-twiddle
Chris@82 73 FLAGS_Q2=$(DFT_FLAGS_COMMON) -twiddle-log3 -precompute-twiddles
Chris@82 74
Chris@82 75 n1_%.c: $(CODELET_DEPS) $(GEN_NOTW)
Chris@82 76 ($(PRELUDE_COMMANDS_DFT); $(TWOVERS) $(GEN_NOTW) $(FLAGS_N1) -n $* -name n1_$* -include "dft/scalar/n.h") | $(ADD_DATE) | $(INDENT) >$@
Chris@82 77
Chris@82 78 t1_%.c: $(CODELET_DEPS) $(GEN_TWIDDLE)
Chris@82 79 ($(PRELUDE_COMMANDS_DFT); $(TWOVERS) $(GEN_TWIDDLE) $(FLAGS_T1) -n $* -name t1_$* -include "dft/scalar/t.h") | $(ADD_DATE) | $(INDENT) >$@
Chris@82 80
Chris@82 81 t2_%.c: $(CODELET_DEPS) $(GEN_TWIDDLE)
Chris@82 82 ($(PRELUDE_COMMANDS_DFT); $(TWOVERS) $(GEN_TWIDDLE) $(FLAGS_T2) -n $* -name t2_$* -include "dft/scalar/t.h") | $(ADD_DATE) | $(INDENT) >$@
Chris@82 83
Chris@82 84 f1_%.c: $(CODELET_DEPS) $(GEN_TWIDDLE)
Chris@82 85 ($(PRELUDE_COMMANDS_DFT); $(TWOVERS) $(GEN_TWIDDLE) $(FLAGS_F1) -dif -n $* -name f1_$* -include "dft/scalar/f.h") | $(ADD_DATE) | $(INDENT) >$@
Chris@82 86
Chris@82 87 f2_%.c: $(CODELET_DEPS) $(GEN_TWIDDLE)
Chris@82 88 ($(PRELUDE_COMMANDS_DFT); $(TWOVERS) $(GEN_TWIDDLE) $(FLAGS_F2) -dif -n $* -name f2_$* -include "dft/scalar/f.h") | $(ADD_DATE) | $(INDENT) >$@
Chris@82 89
Chris@82 90 q1_%.c: $(CODELET_DEPS) $(GEN_TWIDSQ)
Chris@82 91 ($(PRELUDE_COMMANDS_DFT); $(TWOVERS) $(GEN_TWIDSQ) $(FLAGS_Q1) -dif -n $* -name q1_$* -include "dft/scalar/q.h") | $(ADD_DATE) | $(INDENT) >$@
Chris@82 92
Chris@82 93 q2_%.c: $(CODELET_DEPS) $(GEN_TWIDSQ)
Chris@82 94 ($(PRELUDE_COMMANDS_DFT); $(TWOVERS) $(GEN_TWIDSQ) $(FLAGS_Q2) -dif -n $* -name q2_$* -include "dft/scalar/q.h") | $(ADD_DATE) | $(INDENT) >$@
Chris@82 95
Chris@82 96 endif # MAINTAINER_MODE