Fixes Makefile for fir filter generators.
[debian/gnuradio] / gnuradio-core / src / lib / filter / Makefile.am
index 14800cd947b0fd326b1f0d5648f08233d93e6f8e..cfd6535819b52095f5d288be747ab4fa0fb59729 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright 2001,2002,2004,2005,2006,2007,2008 Free Software Foundation, Inc.
+# Copyright 2001,2002,2004,2005,2006,2007,2008,2009,2010 Free Software Foundation, Inc.
 # 
 # This file is part of GNU Radio
 # 
@@ -34,7 +34,7 @@ noinst_LTLIBRARIES = libfilter.la libfilter-qa.la
 # these scripts generate FIR code
 #
 
-CODE_GENERATOR =                                       \
+code_generator =                                       \
        generate_all.py                                 \
        generate_gr_fir_XXX.py                          \
        generate_gr_fir_filter_XXX.py                   \
@@ -44,6 +44,7 @@ CODE_GENERATOR =                                      \
        generate_gr_fir_sysconfig_generic.py            \
        generate_gr_fir_util.py                         \
        generate_gr_freq_xlating_fir_filter_XXX.py      \
+       generate_gri_fir_filter_with_buffer_XXX.py      \
        generate_utils.py                               \
        gr_fir_XXX.cc.t                                 \
        gr_fir_XXX.h.t                                  \
@@ -60,43 +61,18 @@ CODE_GENERATOR =                                    \
        gr_rational_resampler_base_XXX.i.t              \
        gr_freq_xlating_fir_filter_XXX.cc.t             \
        gr_freq_xlating_fir_filter_XXX.h.t              \
-       gr_freq_xlating_fir_filter_XXX.i.t
+       gr_freq_xlating_fir_filter_XXX.i.t              \
+       gri_fir_filter_with_buffer_XXX.cc.t             \
+       gri_fir_filter_with_buffer_XXX.h.t              \
+       gri_fir_filter_with_buffer_XXX.i.t
 
-include Makefile.gen
-
-# Ensure parallel make does the right thing.
-# http://sources.redhat.com/automake/automake.html#Multiple-Outputs
-
-STAMPS = generate-stamp
-
-generate-stamp: $(CODE_GENERATOR)
-       @rm -f generate-tmp
-       @touch generate-tmp
-       PYTHONPATH=$(top_srcdir)/gnuradio-core/src/python srcdir=$(srcdir) $(PYTHON) $(srcdir)/generate_all.py
-       @mv -f generate-tmp $@
-
-
-$(GENERATED_H) $(GENERATED_I) $(GENERATED_CC) filter_generated.i: generate-stamp
-## Recover from the removal of $@
-       @if test -f $@; then :; else \
-               trap 'rm -rf generate-lock generate-stamp' 1 2 13 15; \
-               if mkdir generate-lock 2>/dev/null; then \
-## This code is being executed by the first process.
-                 rm -f generate-stamp; \
-                 $(MAKE) $(AM_MAKEFLAGS) generate-stamp; \
-                 rmdir generate-lock; \
-               else \
-## This code is being executed by the follower processes.
-## Wait until the first process is done.
-                 while test -d generate-lock; do sleep 1; done; \
-## Succeed if and only if the first process succeeded.
-                 test -f generate-stamp; exit $$?; \
-               fi; \
-             fi
-
-
-BUILT_SOURCES = $(GENERATED_H) $(GENERATED_I) $(GENERATED_CC)
 
+# Source built by Python into $(builddir)
+BUILT_SOURCES =                        \
+       $(GENERATED_H)          \
+       $(GENERATED_I)          \
+       $(GENERATED_CC)         \
+       filter_generated.i
 
 # ----------------------------------------------------------------
 # MD_CPU and MD_SUBCPU are set at configure time by way of 
@@ -177,6 +153,15 @@ powerpc_CODE = \
 powerpc_qa_CODE = \
        qa_dotprod_powerpc.cc
 
+armv7_a_CODE = \
+       sysconfig_armv7_a.cc \
+       gr_fir_sysconfig_armv7_a.cc \
+       gr_cpu_armv7_a.cc \
+       gr_fir_fff_armv7_a.cc \
+       dotprod_fff_armv7_a.c
+
+armv7_a_qa_CODE = \
+       qa_dotprod_armv7_a.cc
 
 #
 # include each <foo>_CODE entry here...
@@ -189,21 +174,23 @@ EXTRA_libfilter_la_SOURCES =              \
        $(x86_64_SUBCODE)               \
        $(x86_qa_CODE)                  \
        $(powerpc_CODE)                 \
-       $(powerpc_qa_CODE)
+       $(powerpc_qa_CODE)              \
+       $(armv7_a_CODE)         \
+       $(armv7_a_qa_CODE)
 
 
 EXTRA_DIST =                                   \
        3dnow_float_dotprod_really_simple.S     \
        3dnow_float_dotprod_simple.S            \
-       $(CODE_GENERATOR)                       \
-       $(STAMPS)
-
+       $(code_generator)
 
 # work around automake deficiency
 libfilter_la_common_SOURCES =          \
        $(GENERATED_CC)                 \
        gr_adaptive_fir_ccf.cc          \
        gr_cma_equalizer_cc.cc          \
+       gri_fft_filter_fff_generic.cc   \
+       gri_fft_filter_ccc_generic.cc   \
        gr_fft_filter_ccc.cc            \
        gr_fft_filter_fff.cc            \
        gr_goertzel_fc.cc               \
@@ -221,7 +208,14 @@ libfilter_la_common_SOURCES =              \
        complex_dotprod_generic.cc      \
        ccomplex_dotprod_generic.cc     \
        float_dotprod_generic.c         \
-       short_dotprod_generic.c         
+       short_dotprod_generic.c         \
+       gr_pfb_channelizer_ccf.cc       \
+       gr_pfb_synthesis_filterbank_ccf.cc\
+       gr_pfb_decimator_ccf.cc         \
+       gr_pfb_interpolator_ccf.cc      \
+       gr_pfb_arb_resampler_ccf.cc     \
+       gr_pfb_clock_sync_ccf.cc        \
+       gr_pfb_clock_sync_fff.cc
 
 libfilter_qa_la_common_SOURCES =       \
        qa_filter.cc                    \
@@ -232,7 +226,13 @@ libfilter_qa_la_common_SOURCES =   \
        qa_gr_fir_scc.cc                \
        qa_gr_rotator.cc                \
        qa_gri_mmse_fir_interpolator.cc \
-       qa_gri_mmse_fir_interpolator_cc.cc      
+       qa_gri_mmse_fir_interpolator_cc.cc \
+       qa_gri_fir_filter_with_buffer_ccf.cc \
+       qa_gri_fir_filter_with_buffer_ccc.cc \
+       qa_gri_fir_filter_with_buffer_fcc.cc \
+       qa_gri_fir_filter_with_buffer_fff.cc \
+       qa_gri_fir_filter_with_buffer_fsf.cc \
+       qa_gri_fir_filter_with_buffer_scc.cc
 
 if MD_CPU_generic
 libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(generic_CODE)
@@ -254,6 +254,11 @@ libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(powerpc_CODE)
 libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(powerpc_qa_CODE)
 endif
 
+if MD_CPU_armv7_a
+libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(armv7_a_CODE)
+libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(armv7_a_qa_CODE)
+endif
+
 
 grinclude_HEADERS =                    \
        $(GENERATED_H)                  \
@@ -268,6 +273,8 @@ grinclude_HEADERS =                         \
        gr_altivec.h                    \
        gr_cma_equalizer_cc.h           \
        gr_cpu.h                        \
+       gri_fft_filter_fff_generic.h    \
+       gri_fft_filter_ccc_generic.h    \
        gr_fft_filter_ccc.h             \
        gr_fft_filter_fff.h             \
        gr_filter_delay_fc.h            \
@@ -283,6 +290,7 @@ grinclude_HEADERS =                         \
        gr_single_pole_iir.h            \
        gr_single_pole_iir_filter_ff.h  \
        gr_single_pole_iir_filter_cc.h  \
+       gr_vec_types.h                  \
        gri_goertzel.h                  \
        gri_iir.h                       \
        gri_mmse_fir_interpolator.h     \
@@ -290,11 +298,19 @@ grinclude_HEADERS =                       \
        qa_filter.h                     \
        short_dotprod_generic.h         \
        short_dotprod_x86.h             \
-       sse_debug.h
+       sse_debug.h                     \
+       gr_pfb_channelizer_ccf.h        \
+       gr_pfb_synthesis_filterbank_ccf.h\
+       gr_pfb_decimator_ccf.h          \
+       gr_pfb_interpolator_ccf.h       \
+       gr_pfb_arb_resampler_ccf.h      \
+       gr_pfb_clock_sync_ccf.h         \
+       gr_pfb_clock_sync_fff.h
 
 noinst_HEADERS =                       \
        assembly.h                      \
        dotprod_fff_altivec.h           \
+       dotprod_fff_armv7_a.h           \
        gr_fir_scc_simd.h               \
        gr_fir_scc_x86.h                \
        gr_fir_fcc_simd.h               \
@@ -304,6 +320,7 @@ noinst_HEADERS =                    \
        gr_fir_ccc_simd.h               \
        gr_fir_ccc_x86.h                \
        gr_fir_fff_altivec.h            \
+       gr_fir_fff_armv7_a.h            \
        gr_fir_fff_simd.h               \
        gr_fir_fff_x86.h                \
        gr_fir_fsf_simd.h               \
@@ -320,10 +337,16 @@ noinst_HEADERS =                  \
        qa_gr_fir_scc.h                 \
        qa_gr_rotator.h                 \
        qa_gri_mmse_fir_interpolator.h  \
-       qa_gri_mmse_fir_interpolator_cc.h       
-
+       qa_gri_mmse_fir_interpolator_cc.h \
+       qa_gri_fir_filter_with_buffer_ccf.h \
+       qa_gri_fir_filter_with_buffer_ccc.h \
+       qa_gri_fir_filter_with_buffer_fcc.h \
+       qa_gri_fir_filter_with_buffer_fff.h \
+       qa_gri_fir_filter_with_buffer_fsf.h \
+       qa_gri_fir_filter_with_buffer_scc.h
 
 
+if PYTHON
 swiginclude_HEADERS =                  \
        filter.i                        \
        filter_generated.i              \
@@ -339,7 +362,29 @@ swiginclude_HEADERS =                      \
        gr_iir_filter_ffd.i             \
        gr_single_pole_iir_filter_ff.i  \
        gr_single_pole_iir_filter_cc.i  \
+       gr_pfb_channelizer_ccf.i        \
+       gr_pfb_synthesis_filterbank_ccf.i\
+       gr_pfb_decimator_ccf.i          \
+       gr_pfb_interpolator_ccf.i       \
+       gr_pfb_arb_resampler_ccf.i      \
+       gr_pfb_clock_sync_ccf.i         \
+       gr_pfb_clock_sync_fff.i         \
        $(GENERATED_I)
+endif
+
+# Do creation and inclusion of other Makefiles last
+
+# include the srcdir's Makefile.gen; doing this creates an implicit
+# dependency between $(srcdir)/Makefile.in and $(srcdir)/Makefile.gen.
+include $(srcdir)/Makefile.gen
 
+# common way for generating local Makefile.gen
+makefile_gen_gen_command = PYTHONPATH=$(top_srcdir)/gnuradio-core/src/python srcdir=$(srcdir) do_makefile=1 do_sources=0 $(PYTHON) $(srcdir)/generate_all.py
+include $(top_srcdir)/Makefile.gen.gen
 
-CLEANFILES = $(BUILT_SOURCES) $(STAMPS) *.pyc
+# common way for generating sources from templates when using
+# BUILT_SOURCES, using parallel build protection.
+gen_sources = $(BUILT_SOURCES)
+gen_sources_deps = $(core_generator)
+par_gen_command = PYTHONPATH=$(top_srcdir)/gnuradio-core/src/python srcdir=$(srcdir) $(PYTHON) $(srcdir)/generate_all.py
+include $(top_srcdir)/Makefile.par.gen