summaryrefslogtreecommitdiff
path: root/gr-trellis/src/lib/Makefile.am
diff options
context:
space:
mode:
authorjcorgan2009-03-14 02:28:41 +0000
committerjcorgan2009-03-14 02:28:41 +0000
commitc3f962a1f0a4132ad643c58774bb69b190dccc49 (patch)
treedaa59a206d6fde01dc1404197e981927366af0e0 /gr-trellis/src/lib/Makefile.am
parent4eea337c46db44a6ee7560a4552e158421776777 (diff)
downloadgnuradio-c3f962a1f0a4132ad643c58774bb69b190dccc49.tar.gz
gnuradio-c3f962a1f0a4132ad643c58774bb69b190dccc49.tar.bz2
gnuradio-c3f962a1f0a4132ad643c58774bb69b190dccc49.zip
Merged r10554:10595 from michaelld/am_swig_4 into trunk. Major overhaul of SWIG usage in build system, also fixes ticket:130. Trunk passes distcheck.
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@10596 221aa14e-8319-0410-a670-987f0aec2ac5
Diffstat (limited to 'gr-trellis/src/lib/Makefile.am')
-rw-r--r--gr-trellis/src/lib/Makefile.am144
1 files changed, 58 insertions, 86 deletions
diff --git a/gr-trellis/src/lib/Makefile.am b/gr-trellis/src/lib/Makefile.am
index ea43a37f7..2e7591e4b 100644
--- a/gr-trellis/src/lib/Makefile.am
+++ b/gr-trellis/src/lib/Makefile.am
@@ -21,13 +21,6 @@
include $(top_srcdir)/Makefile.common
-# Install this stuff so that it ends up as the gnuradio.trellis module
-# This usually ends up at:
-# ${prefix}/lib/python${python_version}/site-packages/gnuradio
-
-ourpythondir = $(grpythondir)
-ourlibdir = $(grpyexecdir)
-
AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(PYTHON_CPPFLAGS) $(WITH_INCLUDES)
# ----------------------------------------------------------------
@@ -42,17 +35,13 @@ core_generator = \
trellis_metrics_X.cc.t \
trellis_metrics_X.h.t \
trellis_metrics_X.i.t \
- trellis_viterbi_combined_XX.cc.t \
+ trellis_viterbi_combined_XX.cc.t \
trellis_viterbi_combined_XX.h.t \
trellis_viterbi_combined_XX.i.t \
trellis_viterbi_X.cc.t \
trellis_viterbi_X.h.t \
trellis_viterbi_X.i.t
-# include the srcdir's Makefile.gen; doing this creates an implicit
-# dependency between $(srcdir)/Makefile.in and $(srcdir)/Makefile.gen.
-include $(srcdir)/Makefile.gen
-
# Source built by Python into $(builddir)
python_built_sources = \
$(GENERATED_H) \
@@ -60,76 +49,9 @@ python_built_sources = \
$(GENERATED_CC) \
trellis_generated.i
-# Required when including Makefile.gen.gen
-
-STAMPS =
-gen_sources = $(python_built_sources)
-gen_sources_deps = $(core_generator)
-MOSTLYCLEANFILES = $(BUILT_SOURCES) *.pyc
-
-# common way for generating sources from templates, using the above parameters
-include $(top_srcdir)/Makefile.gen.gen
-
-# These files are built by SWIG. The first is the C++ glue.
-# The second is the python wrapper that loads the _trellis shared library
-# and knows how to call our extensions.
-
-swig_built_sources = \
- trellis.cc \
- trellis.py
-
-BUILT_SOURCES = \
- $(python_built_sources) \
- $(swig_built_sources)
-
-ALL_IFILES = \
- $(LOCAL_IFILES) \
- $(NON_LOCAL_IFILES)
-
-NON_LOCAL_IFILES = \
- $(GNURADIO_I)
-
-LOCAL_IFILES = \
- $(srcdir)/trellis.i
-
EXTRA_DIST = \
$(core_generator)
-# This gets trellis.py installed in the right place
-ourpython_PYTHON = \
- trellis.py
-
-ourlib_LTLIBRARIES = _trellis.la
-
-# These are the source files that go into the shared library
-_trellis_la_SOURCES = \
- trellis.cc \
- fsm.cc \
- quicksort_index.cc \
- base.cc \
- interleaver.cc \
- trellis_calc_metric.cc \
- trellis_permutation.cc \
- trellis_siso_f.cc \
- trellis_siso_combined_f.cc \
- $(GENERATED_CC)
-
-# magic flags
-_trellis_la_LDFLAGS = $(NO_UNDEFINED) -module -avoid-version
-
-# link the library against some comon swig runtime code and the
-# c++ standard library
-_trellis_la_LIBADD = \
- $(PYTHON_LDFLAGS) \
- $(GNURADIO_CORE_LA) \
- -lstdc++
-
-_trellis_la_CXXFLAGS = @swig_CXXFLAGS@
-
-trellis.cc trellis.py: $(ALL_IFILES) $(grinclude_HEADERS)
- $(SWIG) $(STD_SWIG_PYTHON_ARGS) -module trellis \
- -o trellis.cc $(LOCAL_IFILES)
-
# These headers get installed in ${prefix}/include/gnuradio
grinclude_HEADERS = \
fsm.h \
@@ -144,9 +66,37 @@ grinclude_HEADERS = \
trellis_siso_combined_f.h \
$(GENERATED_H)
-# These swig headers get installed in ${prefix}/include/gnuradio/swig
-swiginclude_HEADERS = \
- $(LOCAL_IFILES) \
+#################################
+# SWIG interface and library
+
+TOP_SWIG_IFILES = \
+ trellis.i
+
+# Install so that they end up available as:
+# import gnuradio.trellis
+# This ends up at:
+# ${prefix}/lib/python${python_version}/site-packages/gnuradio
+trellis_pythondir_category = \
+ gnuradio
+
+# additional sources for the SWIG-generated library
+trellis_la_swig_sources = \
+ fsm.cc \
+ quicksort_index.cc \
+ base.cc \
+ interleaver.cc \
+ trellis_calc_metric.cc \
+ trellis_permutation.cc \
+ trellis_siso_f.cc \
+ trellis_siso_combined_f.cc \
+ $(GENERATED_CC)
+
+# additional libraries for linking with the SWIG-generated library
+trellis_la_swig_libadd = \
+ $(GNURADIO_CORE_LA)
+
+# additional SWIG files to be installed
+trellis_swiginclude_headers = \
$(GENERATED_I) \
fsm.i \
interleaver.i \
@@ -155,7 +105,29 @@ swiginclude_HEADERS = \
trellis_siso_combined_f.i \
trellis_generated.i
-# Don't distribute output of swig
-dist-hook:
- @for file in $(swig_built_sources); do echo $(RM) $(distdir)/$$file; done
- @for file in $(swig_built_sources); do $(RM) $(distdir)/$$file; done
+# 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
+
+# common way for generating sources from templates when using
+# BUILT_SOURCES, using parallel build protection.
+gen_sources = $(python_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
+
+include $(top_srcdir)/Makefile.swig
+
+# add some of the variables generated inside the Makefile.swig.gen
+BUILT_SOURCES = \
+ $(python_built_sources) \
+ $(swig_built_sources)
+
+# Do not distribute the output of SWIG
+no_dist_files = $(swig_built_sources)