Imported Upstream version 3.0
[debian/gnuradio] / gnuradio-core / src / lib / filter / Makefile.am
1 #
2 # Copyright 2001,2002,2004,2005,2006 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 2, 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 INCLUDES = $(STD_DEFINES_AND_INCLUDES) $(CPPUNIT_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
66
67 # include $(srcdir)/Makefile.gen
68 include Makefile.gen
69
70
71 $(GENERATED_H) $(GENERATED_I) $(GENERATED_CC): $(CODE_GENERATOR)
72         PYTHONPATH=$(top_srcdir)/gnuradio-core/src/python srcdir=$(srcdir) $(srcdir)/generate_all.py
73
74
75 BUILT_SOURCES = $(GENERATED_H) $(GENERATED_I) $(GENERATED_CC)
76
77
78 # ----------------------------------------------------------------
79 # MD_CPU and MD_SUBCPU are set at configure time by way of 
80 #   gnuradio/config/gr_set_md_cpu.m4.  
81 #   It indicates which set of machine dependent code we should be building.
82 #   We currently implement "generic" and "x86"
83
84 #
85 # <foo>_CODE entry for each set of machine specific speedups
86 #
87
88 generic_CODE =                          \
89         sysconfig_generic.cc            
90
91 generic_qa_CODE =                       \
92         qa_dotprod_generic.cc
93
94 x86_CODE =                              \
95         sysconfig_x86.cc                \
96         gr_fir_sysconfig_x86.cc         \
97         gr_cpu.cc                       \
98         gr_fir_ccc_simd.cc              \
99         gr_fir_ccc_x86.cc               \
100         gr_fir_fff_simd.cc              \
101         gr_fir_fff_x86.cc               \
102         gr_fir_fsf_simd.cc              \
103         gr_fir_fsf_x86.cc               \
104         gr_fir_scc_simd.cc              \
105         gr_fir_scc_x86.cc               \
106         gr_fir_fcc_simd.cc              \
107         gr_fir_fcc_x86.cc               \
108         gr_fir_ccf_simd.cc              \
109         gr_fir_ccf_x86.cc               \
110         sse_debug.c
111
112 x86_SUBCODE =                           \
113         float_dotprod_sse.S             \
114         float_dotprod_3dnow.S           \
115         complex_dotprod_3dnowext.S      \
116         complex_dotprod_3dnow.S         \
117         complex_dotprod_sse.S           \
118         ccomplex_dotprod_3dnowext.S     \
119         ccomplex_dotprod_3dnow.S        \
120         ccomplex_dotprod_sse.S          \
121         fcomplex_dotprod_3dnow.S        \
122         fcomplex_dotprod_sse.S          \
123         short_dotprod_mmx.S             \
124         cpuid_x86.S
125
126 x86_64_SUBCODE =                        \
127         float_dotprod_sse64.S           \
128         float_dotprod_3dnow64.S         \
129         complex_dotprod_3dnowext64.S    \
130         complex_dotprod_3dnow64.S       \
131         complex_dotprod_sse64.S         \
132         ccomplex_dotprod_3dnowext64.S   \
133         ccomplex_dotprod_3dnow64.S      \
134         ccomplex_dotprod_sse64.S        \
135         fcomplex_dotprod_3dnow64.S      \
136         fcomplex_dotprod_sse64.S        \
137         short_dotprod_mmx64.S           \
138         cpuid_x86_64.S
139
140 x86_qa_CODE =                           \
141         qa_dotprod_x86.cc               \
142         qa_float_dotprod_x86.cc         \
143         qa_complex_dotprod_x86.cc       \
144         qa_ccomplex_dotprod_x86.cc      
145
146 #
147 # include each <foo>_CODE entry here...
148 #
149 EXTRA_libfilter_la_SOURCES =            \
150         $(generic_CODE)                 \
151         $(generic_qa_CODE)              \
152         $(x86_CODE)                     \
153         $(x86_SUBCODE)                  \
154         $(x86_64_SUBCODE)               \
155         $(x86_qa_CODE)
156
157
158 EXTRA_DIST =                                    \
159         3dnow_float_dotprod_really_simple.S     \
160         3dnow_float_dotprod_simple.S            \
161         $(CODE_GENERATOR)
162
163
164 # work around automake deficiency
165 libfilter_la_common_SOURCES =           \
166         $(GENERATED_CC)                 \
167         gr_adaptive_fir_ccf.cc          \
168         gr_cma_equalizer_cc.cc          \
169         gr_fft_filter_ccc.cc            \
170         gr_fft_filter_fff.cc            \
171         gr_goertzel_fc.cc               \
172         gr_filter_delay_fc.cc           \
173         gr_fractional_interpolator.cc   \
174         gr_hilbert_fc.cc                \
175         gr_iir_filter_ffd.cc            \
176         gr_sincos.c                     \
177         gr_single_pole_iir_filter_ff.cc \
178         gr_single_pole_avg_filter_ff.cc \
179         gr_single_pole_rec_filter_ff.cc \
180         gr_single_zero_avg_filter_ff.cc \
181         gr_single_zero_rec_filter_ff.cc \
182         gr_single_pole_iir_filter_cc.cc \
183         gri_goertzel.cc                 \
184         gri_mmse_fir_interpolator.cc    \
185         gri_mmse_fir_interpolator_cc.cc \
186         complex_dotprod_generic.cc      \
187         ccomplex_dotprod_generic.cc     \
188         float_dotprod_generic.c         \
189         short_dotprod_generic.c         
190
191 libfilter_qa_la_common_SOURCES =        \
192         qa_filter.cc                    \
193         qa_gr_fir_ccf.cc                \
194         qa_gr_fir_fcc.cc                \
195         qa_gr_fir_fff.cc                \
196         qa_gr_fir_ccc.cc                \
197         qa_gr_fir_scc.cc                \
198         qa_gri_mmse_fir_interpolator.cc 
199
200 if MD_CPU_generic
201 libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(generic_CODE)
202 libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(generic_qa_CODE)
203 endif
204
205 if MD_CPU_x86
206 if MD_SUBCPU_x86_64
207 libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(x86_64_SUBCODE) $(x86_CODE)
208 else
209 libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(x86_SUBCODE) $(x86_CODE)
210 endif
211
212 libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(x86_qa_CODE)
213 endif
214
215
216 grinclude_HEADERS =                     \
217         $(GENERATED_H)                  \
218         complex_dotprod_generic.h       \
219         complex_dotprod_x86.h           \
220         fcomplex_dotprod_x86.h          \
221         ccomplex_dotprod_generic.h      \
222         ccomplex_dotprod_x86.h          \
223         float_dotprod_generic.h         \
224         float_dotprod_x86.h             \
225         gr_adaptive_fir_ccf.h           \
226         gr_cma_equalizer_cc.h           \
227         gr_cpu.h                        \
228         gr_fft_filter_ccc.h             \
229         gr_fft_filter_fff.h             \
230         gr_filter_delay_fc.h            \
231         gr_fir_sysconfig_x86.h          \
232         gr_fractional_interpolator.h    \
233         gr_goertzel_fc.h                \
234         gr_hilbert_fc.h                 \
235         gr_iir_filter_ffd.h             \
236         gr_rotator.h                    \
237         gr_sincos.h                     \
238         gr_single_pole_avg.h            \
239         gr_single_pole_rec.h            \
240         gr_single_pole_iir.h            \
241         gr_single_pole_iir_filter_ff.h  \
242         gr_single_pole_avg_filter_ff.h  \
243         gr_single_pole_rec_filter_ff.h  \
244         gr_single_zero_avg_filter_ff.h  \
245         gr_single_zero_rec_filter_ff.h  \
246         gr_single_pole_iir_filter_cc.h  \
247         gr_single_zero_avg.h            \
248         gr_single_zero_rec.h            \
249         gri_goertzel.h                  \
250         gri_iir.h                       \
251         gri_mmse_fir_interpolator.h     \
252         gri_mmse_fir_interpolator_cc.h  \
253         qa_filter.h                     \
254         short_dotprod_generic.h         \
255         short_dotprod_x86.h             \
256         sse_debug.h
257
258 noinst_HEADERS =                        \
259         assembly.h                      \
260         gr_fir_scc_simd.h               \
261         gr_fir_scc_x86.h                \
262         gr_fir_fcc_simd.h               \
263         gr_fir_fcc_x86.h                \
264         gr_fir_ccf_simd.h               \
265         gr_fir_ccf_x86.h                \
266         gr_fir_ccc_simd.h               \
267         gr_fir_ccc_x86.h                \
268         gr_fir_fff_simd.h               \
269         gr_fir_fff_x86.h                \
270         gr_fir_fsf_simd.h               \
271         gr_fir_fsf_x86.h                \
272         interpolator_taps.h             \
273         qa_complex_dotprod_x86.h        \
274         qa_ccomplex_dotprod_x86.h       \
275         qa_dotprod.h                    \
276         qa_float_dotprod_x86.h          \
277         qa_gr_fir_ccf.h                 \
278         qa_gr_fir_fcc.h                 \
279         qa_gr_fir_fff.h                 \
280         qa_gr_fir_ccc.h                 \
281         qa_gr_fir_scc.h                 \
282         qa_gri_mmse_fir_interpolator.h  
283
284
285
286 swiginclude_HEADERS =                   \
287         filter.i                        \
288         filter_generated.i              \
289         gr_adaptive_fir_ccf.i           \
290         gr_cma_equalizer_cc.i           \
291         gr_fft_filter_ccc.i             \
292         gr_fft_filter_fff.i             \
293         gr_filter_delay_fc.i            \
294         gr_goertzel_fc.i                \
295         gr_hilbert_fc.i                 \
296         gr_iir_filter_ffd.i             \
297         gr_single_pole_iir_filter_ff.i  \
298         gr_single_pole_avg_filter_ff.i  \
299         gr_single_pole_rec_filter_ff.i  \
300         gr_single_zero_avg_filter_ff.i  \
301         gr_single_zero_rec_filter_ff.i  \
302         gr_single_pole_iir_filter_cc.i  \
303         $(GENERATED_I)
304
305
306 CLEANFILES = $(BUILT_SOURCES) *.pyc