Statistics
| Branch: | Tag: | Revision:

root / gnuradio-core / src / lib / filter / Makefile.am @ c3f962a1

History | View | Annotate | Download (8.6 kB)

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
152
#
153
# include each <foo>_CODE entry here...
154
#
155
EXTRA_libfilter_la_SOURCES =		\
156
	$(generic_CODE)			\
157
	$(generic_qa_CODE)		\
158
	$(x86_CODE)			\
159
	$(x86_SUBCODE)			\
160
	$(x86_64_SUBCODE)		\
161
	$(x86_qa_CODE)			\
162
	$(powerpc_CODE)			\
163
	$(powerpc_qa_CODE)
164
165
166
EXTRA_DIST = 					\
167
	3dnow_float_dotprod_really_simple.S	\
168
	3dnow_float_dotprod_simple.S		\
169
	$(code_generator)
170
171
# work around automake deficiency
172
libfilter_la_common_SOURCES = 		\
173
	$(GENERATED_CC)			\
174
	gr_adaptive_fir_ccf.cc		\
175
	gr_cma_equalizer_cc.cc		\
176
	gr_fft_filter_ccc.cc		\
177
	gr_fft_filter_fff.cc		\
178
	gr_goertzel_fc.cc		\
179
	gr_filter_delay_fc.cc		\
180
	gr_fractional_interpolator_ff.cc \
181
	gr_fractional_interpolator_cc.cc \
182
	gr_hilbert_fc.cc		\
183
	gr_iir_filter_ffd.cc		\
184
	gr_sincos.c			\
185
	gr_single_pole_iir_filter_ff.cc	\
186
	gr_single_pole_iir_filter_cc.cc	\
187
	gri_goertzel.cc			\
188
	gri_mmse_fir_interpolator.cc	\
189
	gri_mmse_fir_interpolator_cc.cc	\
190
	complex_dotprod_generic.cc	\
191
	ccomplex_dotprod_generic.cc	\
192
	float_dotprod_generic.c		\
193
	short_dotprod_generic.c		
194
195
libfilter_qa_la_common_SOURCES = 	\
196
	qa_filter.cc			\
197
	qa_gr_fir_ccf.cc		\
198
	qa_gr_fir_fcc.cc		\
199
	qa_gr_fir_fff.cc		\
200
	qa_gr_fir_ccc.cc		\
201
	qa_gr_fir_scc.cc		\
202
	qa_gr_rotator.cc		\
203
	qa_gri_mmse_fir_interpolator.cc	\
204
	qa_gri_mmse_fir_interpolator_cc.cc	
205
206
if MD_CPU_generic
207
libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(generic_CODE)
208
libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(generic_qa_CODE)
209
endif
210
211
if MD_CPU_x86
212
if MD_SUBCPU_x86_64
213
libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(x86_64_SUBCODE) $(x86_CODE)
214
else
215
libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(x86_SUBCODE) $(x86_CODE)
216
endif
217
218
libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(x86_qa_CODE)
219
endif
220
221
if MD_CPU_powerpc
222
libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(powerpc_CODE)
223
libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(powerpc_qa_CODE)
224
endif
225
226
227
grinclude_HEADERS = 			\
228
	$(GENERATED_H)			\
229
	complex_dotprod_generic.h	\
230
	complex_dotprod_x86.h		\
231
	fcomplex_dotprod_x86.h		\
232
	ccomplex_dotprod_generic.h	\
233
	ccomplex_dotprod_x86.h		\
234
	float_dotprod_generic.h		\
235
	float_dotprod_x86.h		\
236
	gr_adaptive_fir_ccf.h		\
237
	gr_altivec.h			\
238
	gr_cma_equalizer_cc.h		\
239
	gr_cpu.h			\
240
	gr_fft_filter_ccc.h		\
241
	gr_fft_filter_fff.h		\
242
	gr_filter_delay_fc.h		\
243
	gr_fir_sysconfig_x86.h		\
244
	gr_fir_sysconfig_powerpc.h	\
245
	gr_fractional_interpolator_ff.h	\
246
	gr_fractional_interpolator_cc.h	\
247
	gr_goertzel_fc.h		\
248
	gr_hilbert_fc.h			\
249
	gr_iir_filter_ffd.h		\
250
	gr_rotator.h			\
251
	gr_sincos.h			\
252
	gr_single_pole_iir.h		\
253
	gr_single_pole_iir_filter_ff.h	\
254
	gr_single_pole_iir_filter_cc.h  \
255
	gr_vec_types.h			\
256
	gri_goertzel.h			\
257
	gri_iir.h			\
258
	gri_mmse_fir_interpolator.h	\
259
	gri_mmse_fir_interpolator_cc.h	\
260
	qa_filter.h			\
261
	short_dotprod_generic.h		\
262
	short_dotprod_x86.h		\
263
	sse_debug.h
264
265
noinst_HEADERS = 			\
266
	assembly.h			\
267
	dotprod_fff_altivec.h		\
268
	gr_fir_scc_simd.h		\
269
	gr_fir_scc_x86.h		\
270
	gr_fir_fcc_simd.h		\
271
	gr_fir_fcc_x86.h		\
272
	gr_fir_ccf_simd.h		\
273
	gr_fir_ccf_x86.h		\
274
	gr_fir_ccc_simd.h		\
275
	gr_fir_ccc_x86.h		\
276
	gr_fir_fff_altivec.h		\
277
	gr_fir_fff_simd.h		\
278
	gr_fir_fff_x86.h		\
279
	gr_fir_fsf_simd.h		\
280
	gr_fir_fsf_x86.h		\
281
	interpolator_taps.h		\
282
	qa_complex_dotprod_x86.h	\
283
	qa_ccomplex_dotprod_x86.h	\
284
	qa_dotprod.h			\
285
	qa_float_dotprod_x86.h		\
286
	qa_gr_fir_ccf.h			\
287
	qa_gr_fir_fcc.h			\
288
	qa_gr_fir_fff.h			\
289
	qa_gr_fir_ccc.h			\
290
	qa_gr_fir_scc.h			\
291
	qa_gr_rotator.h			\
292
	qa_gri_mmse_fir_interpolator.h	\
293
	qa_gri_mmse_fir_interpolator_cc.h	
294
295
296
297
swiginclude_HEADERS =			\
298
	filter.i			\
299
	filter_generated.i		\
300
	gr_adaptive_fir_ccf.i		\
301
	gr_cma_equalizer_cc.i		\
302
	gr_fft_filter_ccc.i		\
303
	gr_fft_filter_fff.i		\
304
	gr_filter_delay_fc.i		\
305
	gr_fractional_interpolator_ff.i \
306
	gr_fractional_interpolator_cc.i \
307
	gr_goertzel_fc.i		\
308
	gr_hilbert_fc.i			\
309
	gr_iir_filter_ffd.i		\
310
	gr_single_pole_iir_filter_ff.i	\
311
	gr_single_pole_iir_filter_cc.i	\
312
	$(GENERATED_I)
313
314
# Do creation and inclusion of other Makefiles last
315
316
# include the srcdir's Makefile.gen; doing this creates an implicit
317
# dependency between $(srcdir)/Makefile.in and $(srcdir)/Makefile.gen.
318
include $(srcdir)/Makefile.gen
319
320
# common way for generating local Makefile.gen
321
makefile_gen_gen_command = PYTHONPATH=$(top_srcdir)/gnuradio-core/src/python srcdir=$(srcdir) do_makefile=1 do_sources=0 $(PYTHON) $(srcdir)/generate_all.py
322
include $(top_srcdir)/Makefile.gen.gen
323
324
# common way for generating sources from templates when using
325
# BUILT_SOURCES, using parallel build protection.
326
gen_sources = $(BUILT_SOURCES)
327
gen_sources_deps = $(core_generator)
328
par_gen_command = PYTHONPATH=$(top_srcdir)/gnuradio-core/src/python srcdir=$(srcdir) $(PYTHON) $(srcdir)/generate_all.py
329
include $(top_srcdir)/Makefile.par.gen