switch source package format to 3.0 quilt
[debian/gnuradio] / gnuradio-core / src / lib / filter / Makefile.am
1 #
2 # Copyright 2001,2002,2004,2005,2006,2007,2008,2009 Free Software Foundation, Inc.
3
4 # This file is part of GNU Radio
5
6 # GNU Radio is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 3, or (at your option)
9 # any later version.
10
11 # GNU Radio is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15
16 # You should have received a copy of the GNU General Public License
17 # along with GNU Radio; see the file COPYING.  If not, write to
18 # the Free Software Foundation, Inc., 51 Franklin Street,
19 # Boston, MA 02110-1301, USA.
20
21
22 include $(top_srcdir)/Makefile.common
23
24 #
25 # This directory contains mostly filter routines, plus a few
26 # other performance critical items
27 #
28
29 AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(CPPUNIT_INCLUDES) $(WITH_INCLUDES)
30
31 noinst_LTLIBRARIES = libfilter.la libfilter-qa.la
32
33 # ----------------------------------------------------------------
34 # these scripts generate FIR code
35 #
36
37 code_generator =                                        \
38         generate_all.py                                 \
39         generate_gr_fir_XXX.py                          \
40         generate_gr_fir_filter_XXX.py                   \
41         generate_gr_interp_fir_filter_XXX.py            \
42         generate_gr_rational_resampler_base_XXX.py      \
43         generate_gr_fir_sysconfig.py                    \
44         generate_gr_fir_sysconfig_generic.py            \
45         generate_gr_fir_util.py                         \
46         generate_gr_freq_xlating_fir_filter_XXX.py      \
47         generate_utils.py                               \
48         gr_fir_XXX.cc.t                                 \
49         gr_fir_XXX.h.t                                  \
50         gr_fir_XXX_generic.cc.t                         \
51         gr_fir_XXX_generic.h.t                          \
52         gr_fir_filter_XXX.cc.t                          \
53         gr_fir_filter_XXX.h.t                           \
54         gr_fir_filter_XXX.i.t                           \
55         gr_interp_fir_filter_XXX.cc.t                   \
56         gr_interp_fir_filter_XXX.h.t                    \
57         gr_interp_fir_filter_XXX.i.t                    \
58         gr_rational_resampler_base_XXX.cc.t             \
59         gr_rational_resampler_base_XXX.h.t              \
60         gr_rational_resampler_base_XXX.i.t              \
61         gr_freq_xlating_fir_filter_XXX.cc.t             \
62         gr_freq_xlating_fir_filter_XXX.h.t              \
63         gr_freq_xlating_fir_filter_XXX.i.t
64
65 # Source built by Python into $(builddir)
66 BUILT_SOURCES =                 \
67         $(GENERATED_H)          \
68         $(GENERATED_I)          \
69         $(GENERATED_CC)         \
70         filter_generated.i
71
72 # ----------------------------------------------------------------
73 # MD_CPU and MD_SUBCPU are set at configure time by way of 
74 #   gnuradio/config/gr_set_md_cpu.m4.  
75 #   It indicates which set of machine dependent code we should be building.
76 #   We currently implement "generic" and "x86"
77
78 #
79 # <foo>_CODE entry for each set of machine specific speedups
80 #
81
82 generic_CODE =                          \
83         sysconfig_generic.cc            
84
85 generic_qa_CODE =                       \
86         qa_dotprod_generic.cc
87
88 x86_CODE =                              \
89         sysconfig_x86.cc                \
90         gr_fir_sysconfig_x86.cc         \
91         gr_cpu_x86.cc                   \
92         gr_fir_ccc_simd.cc              \
93         gr_fir_ccc_x86.cc               \
94         gr_fir_fff_simd.cc              \
95         gr_fir_fff_x86.cc               \
96         gr_fir_fsf_simd.cc              \
97         gr_fir_fsf_x86.cc               \
98         gr_fir_scc_simd.cc              \
99         gr_fir_scc_x86.cc               \
100         gr_fir_fcc_simd.cc              \
101         gr_fir_fcc_x86.cc               \
102         gr_fir_ccf_simd.cc              \
103         gr_fir_ccf_x86.cc               \
104         sse_debug.c
105
106 x86_SUBCODE =                           \
107         float_dotprod_sse.S             \
108         float_dotprod_3dnow.S           \
109         complex_dotprod_3dnowext.S      \
110         complex_dotprod_3dnow.S         \
111         complex_dotprod_sse.S           \
112         ccomplex_dotprod_3dnowext.S     \
113         ccomplex_dotprod_3dnow.S        \
114         ccomplex_dotprod_sse.S          \
115         fcomplex_dotprod_3dnow.S        \
116         fcomplex_dotprod_sse.S          \
117         short_dotprod_mmx.S             \
118         cpuid_x86.S
119
120 x86_64_SUBCODE =                        \
121         float_dotprod_sse64.S           \
122         float_dotprod_3dnow64.S         \
123         complex_dotprod_3dnowext64.S    \
124         complex_dotprod_3dnow64.S       \
125         complex_dotprod_sse64.S         \
126         ccomplex_dotprod_3dnowext64.S   \
127         ccomplex_dotprod_3dnow64.S      \
128         ccomplex_dotprod_sse64.S        \
129         fcomplex_dotprod_3dnow64.S      \
130         fcomplex_dotprod_sse64.S        \
131         short_dotprod_mmx64.S           \
132         cpuid_x86_64.S
133
134 x86_qa_CODE =                           \
135         qa_dotprod_x86.cc               \
136         qa_float_dotprod_x86.cc         \
137         qa_complex_dotprod_x86.cc       \
138         qa_ccomplex_dotprod_x86.cc      
139
140 powerpc_CODE = \
141         sysconfig_powerpc.cc \
142         gr_fir_sysconfig_powerpc.cc \
143         gr_cpu_powerpc.cc \
144         gr_fir_fff_altivec.cc \
145         gr_altivec.c \
146         dotprod_fff_altivec.c
147
148 powerpc_qa_CODE = \
149         qa_dotprod_powerpc.cc
150
151 armv7_a_CODE = \
152         sysconfig_armv7_a.cc \
153         gr_fir_sysconfig_armv7_a.cc \
154         gr_cpu_armv7_a.cc \
155         gr_fir_fff_armv7_a.cc \
156         dotprod_fff_armv7_a.c
157
158 armv7_a_qa_CODE = \
159         qa_dotprod_armv7_a.cc
160
161 #
162 # include each <foo>_CODE entry here...
163 #
164 EXTRA_libfilter_la_SOURCES =            \
165         $(generic_CODE)                 \
166         $(generic_qa_CODE)              \
167         $(x86_CODE)                     \
168         $(x86_SUBCODE)                  \
169         $(x86_64_SUBCODE)               \
170         $(x86_qa_CODE)                  \
171         $(powerpc_CODE)                 \
172         $(powerpc_qa_CODE)              \
173         $(armv7_a_CODE)         \
174         $(armv7_a_qa_CODE)
175
176
177 EXTRA_DIST =                                    \
178         3dnow_float_dotprod_really_simple.S     \
179         3dnow_float_dotprod_simple.S            \
180         $(code_generator)
181
182 # work around automake deficiency
183 libfilter_la_common_SOURCES =           \
184         $(GENERATED_CC)                 \
185         gr_adaptive_fir_ccf.cc          \
186         gr_cma_equalizer_cc.cc          \
187         gri_fft_filter_fff_generic.cc   \
188         gri_fft_filter_ccc_generic.cc   \
189         gr_fft_filter_ccc.cc            \
190         gr_fft_filter_fff.cc            \
191         gr_goertzel_fc.cc               \
192         gr_filter_delay_fc.cc           \
193         gr_fractional_interpolator_ff.cc \
194         gr_fractional_interpolator_cc.cc \
195         gr_hilbert_fc.cc                \
196         gr_iir_filter_ffd.cc            \
197         gr_sincos.c                     \
198         gr_single_pole_iir_filter_ff.cc \
199         gr_single_pole_iir_filter_cc.cc \
200         gri_goertzel.cc                 \
201         gri_mmse_fir_interpolator.cc    \
202         gri_mmse_fir_interpolator_cc.cc \
203         complex_dotprod_generic.cc      \
204         ccomplex_dotprod_generic.cc     \
205         float_dotprod_generic.c         \
206         short_dotprod_generic.c         \
207         gr_pfb_channelizer_ccf.cc       \
208         gr_pfb_decimator_ccf.cc         \
209         gr_pfb_interpolator_ccf.cc      \
210         gr_pfb_arb_resampler_ccf.cc     \
211         gr_pfb_clock_sync_ccf.cc        \
212         gr_pfb_clock_sync_fff.cc
213
214 libfilter_qa_la_common_SOURCES =        \
215         qa_filter.cc                    \
216         qa_gr_fir_ccf.cc                \
217         qa_gr_fir_fcc.cc                \
218         qa_gr_fir_fff.cc                \
219         qa_gr_fir_ccc.cc                \
220         qa_gr_fir_scc.cc                \
221         qa_gr_rotator.cc                \
222         qa_gri_mmse_fir_interpolator.cc \
223         qa_gri_mmse_fir_interpolator_cc.cc      
224
225 if MD_CPU_generic
226 libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(generic_CODE)
227 libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(generic_qa_CODE)
228 endif
229
230 if MD_CPU_x86
231 if MD_SUBCPU_x86_64
232 libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(x86_64_SUBCODE) $(x86_CODE)
233 else
234 libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(x86_SUBCODE) $(x86_CODE)
235 endif
236
237 libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(x86_qa_CODE)
238 endif
239
240 if MD_CPU_powerpc
241 libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(powerpc_CODE)
242 libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(powerpc_qa_CODE)
243 endif
244
245 if MD_CPU_armv7_a
246 libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(armv7_a_CODE)
247 libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(armv7_a_qa_CODE)
248 endif
249
250
251 grinclude_HEADERS =                     \
252         $(GENERATED_H)                  \
253         complex_dotprod_generic.h       \
254         complex_dotprod_x86.h           \
255         fcomplex_dotprod_x86.h          \
256         ccomplex_dotprod_generic.h      \
257         ccomplex_dotprod_x86.h          \
258         float_dotprod_generic.h         \
259         float_dotprod_x86.h             \
260         gr_adaptive_fir_ccf.h           \
261         gr_altivec.h                    \
262         gr_cma_equalizer_cc.h           \
263         gr_cpu.h                        \
264         gri_fft_filter_fff_generic.h    \
265         gri_fft_filter_ccc_generic.h    \
266         gr_fft_filter_ccc.h             \
267         gr_fft_filter_fff.h             \
268         gr_filter_delay_fc.h            \
269         gr_fir_sysconfig_x86.h          \
270         gr_fir_sysconfig_powerpc.h      \
271         gr_fractional_interpolator_ff.h \
272         gr_fractional_interpolator_cc.h \
273         gr_goertzel_fc.h                \
274         gr_hilbert_fc.h                 \
275         gr_iir_filter_ffd.h             \
276         gr_rotator.h                    \
277         gr_sincos.h                     \
278         gr_single_pole_iir.h            \
279         gr_single_pole_iir_filter_ff.h  \
280         gr_single_pole_iir_filter_cc.h  \
281         gr_vec_types.h                  \
282         gri_goertzel.h                  \
283         gri_iir.h                       \
284         gri_mmse_fir_interpolator.h     \
285         gri_mmse_fir_interpolator_cc.h  \
286         qa_filter.h                     \
287         short_dotprod_generic.h         \
288         short_dotprod_x86.h             \
289         sse_debug.h                     \
290         gr_pfb_channelizer_ccf.h        \
291         gr_pfb_decimator_ccf.h          \
292         gr_pfb_interpolator_ccf.h       \
293         gr_pfb_arb_resampler_ccf.h      \
294         gr_pfb_clock_sync_ccf.h         \
295         gr_pfb_clock_sync_fff.h
296
297 noinst_HEADERS =                        \
298         assembly.h                      \
299         dotprod_fff_altivec.h           \
300         dotprod_fff_armv7_a.h           \
301         gr_fir_scc_simd.h               \
302         gr_fir_scc_x86.h                \
303         gr_fir_fcc_simd.h               \
304         gr_fir_fcc_x86.h                \
305         gr_fir_ccf_simd.h               \
306         gr_fir_ccf_x86.h                \
307         gr_fir_ccc_simd.h               \
308         gr_fir_ccc_x86.h                \
309         gr_fir_fff_altivec.h            \
310         gr_fir_fff_armv7_a.h            \
311         gr_fir_fff_simd.h               \
312         gr_fir_fff_x86.h                \
313         gr_fir_fsf_simd.h               \
314         gr_fir_fsf_x86.h                \
315         interpolator_taps.h             \
316         qa_complex_dotprod_x86.h        \
317         qa_ccomplex_dotprod_x86.h       \
318         qa_dotprod.h                    \
319         qa_float_dotprod_x86.h          \
320         qa_gr_fir_ccf.h                 \
321         qa_gr_fir_fcc.h                 \
322         qa_gr_fir_fff.h                 \
323         qa_gr_fir_ccc.h                 \
324         qa_gr_fir_scc.h                 \
325         qa_gr_rotator.h                 \
326         qa_gri_mmse_fir_interpolator.h  \
327         qa_gri_mmse_fir_interpolator_cc.h       
328
329
330 if PYTHON
331 swiginclude_HEADERS =                   \
332         filter.i                        \
333         filter_generated.i              \
334         gr_adaptive_fir_ccf.i           \
335         gr_cma_equalizer_cc.i           \
336         gr_fft_filter_ccc.i             \
337         gr_fft_filter_fff.i             \
338         gr_filter_delay_fc.i            \
339         gr_fractional_interpolator_ff.i \
340         gr_fractional_interpolator_cc.i \
341         gr_goertzel_fc.i                \
342         gr_hilbert_fc.i                 \
343         gr_iir_filter_ffd.i             \
344         gr_single_pole_iir_filter_ff.i  \
345         gr_single_pole_iir_filter_cc.i  \
346         gr_pfb_channelizer_ccf.i        \
347         gr_pfb_decimator_ccf.i          \
348         gr_pfb_interpolator_ccf.i       \
349         gr_pfb_arb_resampler_ccf.i      \
350         gr_pfb_clock_sync_ccf.i         \
351         gr_pfb_clock_sync_fff.i         \
352         $(GENERATED_I)
353 endif
354
355 # Do creation and inclusion of other Makefiles last
356
357 # include the srcdir's Makefile.gen; doing this creates an implicit
358 # dependency between $(srcdir)/Makefile.in and $(srcdir)/Makefile.gen.
359 include $(srcdir)/Makefile.gen
360
361 # common way for generating local Makefile.gen
362 makefile_gen_gen_command = PYTHONPATH=$(top_srcdir)/gnuradio-core/src/python srcdir=$(srcdir) do_makefile=1 do_sources=0 $(PYTHON) $(srcdir)/generate_all.py
363 include $(top_srcdir)/Makefile.gen.gen
364
365 # common way for generating sources from templates when using
366 # BUILT_SOURCES, using parallel build protection.
367 gen_sources = $(BUILT_SOURCES)
368 gen_sources_deps = $(core_generator)
369 par_gen_command = PYTHONPATH=$(top_srcdir)/gnuradio-core/src/python srcdir=$(srcdir) $(PYTHON) $(srcdir)/generate_all.py
370 include $(top_srcdir)/Makefile.par.gen