2 # Copyright 2001,2002,2004,2005,2006 Free Software Foundation, Inc.
4 # This file is part of GNU Radio
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)
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.
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.
22 include $(top_srcdir)/Makefile.common
25 # This directory contains mostly filter routines, plus a few
26 # other performance critical items
29 INCLUDES = $(STD_DEFINES_AND_INCLUDES) $(CPPUNIT_INCLUDES)
31 noinst_LTLIBRARIES = libfilter.la libfilter-qa.la
33 # ----------------------------------------------------------------
34 # these scripts generate FIR code
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 \
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
67 # include $(srcdir)/Makefile.gen
71 $(GENERATED_H) $(GENERATED_I) $(GENERATED_CC): $(CODE_GENERATOR)
72 PYTHONPATH=$(top_srcdir)/gnuradio-core/src/python srcdir=$(srcdir) $(srcdir)/generate_all.py
75 BUILT_SOURCES = $(GENERATED_H) $(GENERATED_I) $(GENERATED_CC)
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"
85 # <foo>_CODE entry for each set of machine specific speedups
96 gr_fir_sysconfig_x86.cc \
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 \
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 \
142 qa_float_dotprod_x86.cc \
143 qa_complex_dotprod_x86.cc \
144 qa_ccomplex_dotprod_x86.cc
147 # include each <foo>_CODE entry here...
149 EXTRA_libfilter_la_SOURCES = \
159 3dnow_float_dotprod_really_simple.S \
160 3dnow_float_dotprod_simple.S \
164 # work around automake deficiency
165 libfilter_la_common_SOURCES = \
167 gr_adaptive_fir_ccf.cc \
168 gr_cma_equalizer_cc.cc \
169 gr_fft_filter_ccc.cc \
170 gr_fft_filter_fff.cc \
172 gr_filter_delay_fc.cc \
173 gr_fractional_interpolator.cc \
175 gr_iir_filter_ffd.cc \
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 \
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
191 libfilter_qa_la_common_SOURCES = \
198 qa_gri_mmse_fir_interpolator.cc
201 libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(generic_CODE)
202 libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(generic_qa_CODE)
207 libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(x86_64_SUBCODE) $(x86_CODE)
209 libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(x86_SUBCODE) $(x86_CODE)
212 libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(x86_qa_CODE)
216 grinclude_HEADERS = \
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 \
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 \
235 gr_iir_filter_ffd.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 \
251 gri_mmse_fir_interpolator.h \
252 gri_mmse_fir_interpolator_cc.h \
254 short_dotprod_generic.h \
255 short_dotprod_x86.h \
272 interpolator_taps.h \
273 qa_complex_dotprod_x86.h \
274 qa_ccomplex_dotprod_x86.h \
276 qa_float_dotprod_x86.h \
282 qa_gri_mmse_fir_interpolator.h
286 swiginclude_HEADERS = \
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 \
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 \
306 CLEANFILES = $(BUILT_SOURCES) *.pyc