summaryrefslogtreecommitdiff
path: root/gnuradio-core/src/lib/swig/Makefile.am
diff options
context:
space:
mode:
Diffstat (limited to 'gnuradio-core/src/lib/swig/Makefile.am')
-rw-r--r--gnuradio-core/src/lib/swig/Makefile.am235
1 files changed, 208 insertions, 27 deletions
diff --git a/gnuradio-core/src/lib/swig/Makefile.am b/gnuradio-core/src/lib/swig/Makefile.am
index 590b07b856..6bb2ca819b 100644
--- a/gnuradio-core/src/lib/swig/Makefile.am
+++ b/gnuradio-core/src/lib/swig/Makefile.am
@@ -1,5 +1,5 @@
#
-# Copyright 2001,2003,2004,2005 Free Software Foundation, Inc.
+# Copyright 2001,2003,2004,2005,2006,2007 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
@@ -37,62 +37,238 @@ EXTRA_DIST = gen-swig-bug-fix
LOCAL_IFILES = \
gnuradio.i \
- shared_ptr.i
+ shared_ptr.i \
+ sw_general.i \
+ sw_gengen.i \
+ sw_filter.i \
+ sw_io.i
+
ALL_IFILES = \
$(LOCAL_IFILES)
+
+
+# ----------------------------------------------------------------
+# We've split the previously monstrous gnuradio_swig_python into
+# 5 smaller pieces. This reduces compile time coupling and
+# creates smaller pieces for the compiler to digest.
+# prior to this change, on X86_64, g++'s resident set size was
+# 650MB!
+
BUILT_SOURCES = \
- gnuradio_swig_python.cc \
- gnuradio_swig_python.py \
- gnuradio_swig_python.h \
+ gnuradio_swig_py_runtime.cc \
+ gnuradio_swig_py_runtime.py \
+ gnuradio_swig_py_runtime.h \
+ gnuradio_swig_py_general.cc \
+ gnuradio_swig_py_general.py \
+ gnuradio_swig_py_general.h \
+ gnuradio_swig_py_gengen.cc \
+ gnuradio_swig_py_gengen.py \
+ gnuradio_swig_py_gengen.h \
+ gnuradio_swig_py_filter.cc \
+ gnuradio_swig_py_filter.py \
+ gnuradio_swig_py_filter.h \
+ gnuradio_swig_py_io.cc \
+ gnuradio_swig_py_io.py \
+ gnuradio_swig_py_io.h \
gnuradio_swig_bug_workaround.h
+
+SWIGPYTHONARGS = $(SWIGPYTHONFLAGS) $(INCLUDES)
+
+# ----------------------------------------------------------------
+# We break this up into 5 libraries...
+
+grgrlib_LTLIBRARIES = \
+ _gnuradio_swig_py_runtime.la \
+ _gnuradio_swig_py_general.la \
+ _gnuradio_swig_py_gengen.la \
+ _gnuradio_swig_py_filter.la \
+ _gnuradio_swig_py_io.la
+
+
grgrpython_PYTHON = \
- gnuradio_swig_python.py
+ gnuradio_swig_python.py \
+ gnuradio_swig_py_runtime.py \
+ gnuradio_swig_py_general.py \
+ gnuradio_swig_py_gengen.py \
+ gnuradio_swig_py_filter.py \
+ gnuradio_swig_py_io.py
-SWIGPYTHONARGS = $(SWIGPYTHONFLAGS) $(INCLUDES)
+# This results in the code being compiled with -O1 instead of -g -O2
+
+_gnuradio_swig_py_runtime_la_CXXFLAGS = @swig_CXXFLAGS@
+_gnuradio_swig_py_general_la_CXXFLAGS = @swig_CXXFLAGS@
+_gnuradio_swig_py_gengen_la_CXXFLAGS = @swig_CXXFLAGS@
+_gnuradio_swig_py_filter_la_CXXFLAGS = @swig_CXXFLAGS@
+_gnuradio_swig_py_io_la_CXXFLAGS = @swig_CXXFLAGS@
# ----------------------------------------------------------------
-# _gnuradio_swig_python contains all the glue that implements
-# the gnuradio.gr python package
+# Part 1: gnuradio.i -> gnuradio_swig_py_runtime
+#
+# We continue to call this gnuradio.i to avoid having to touch
+# lots of code in other modules
-grgrlib_LTLIBRARIES = \
- _gnuradio_swig_python.la
+_gnuradio_swig_py_runtime_la_SOURCES = \
+ gnuradio_swig_py_runtime.cc
-_gnuradio_swig_python_la_SOURCES = \
- gnuradio_swig_python.cc
+_gnuradio_swig_py_runtime_la_LIBADD = \
+ $(top_builddir)/gnuradio-core/src/lib/libgnuradio-core.la \
+ $(PYTHON_LDFLAGS) \
+ -lstdc++
+
+_gnuradio_swig_py_runtime_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
-_gnuradio_swig_python_la_LIBADD = \
+
+# KLUDGE: Force runtime include of gnuradio_swig_py_runtime.d dependency file.
+# This is not guaranteed to be portable, but will probably work.
+# If it works, we have accurate dependencies for our swig stuff, which is good.
+@am__include@ @am__quote@./gnuradio_swig_py_runtime.d@am__quote@
+
+gnuradio_swig_py_runtime.py gnuradio_swig_py_runtime.h: gnuradio_swig_py_runtime.cc
+
+gnuradio_swig_py_runtime.cc : gnuradio.i
+ if $(SWIG) $(SWIGPYTHONARGS) -MMD -MF gnuradio_swig_py_runtime.Td -module gnuradio_swig_py_runtime -o gnuradio_swig_py_runtime.cc gnuradio.i ;\
+ then if test $(host_os) = mingw32; \
+ then sed 's,\\\\,/,g' <gnuradio_swig_py_runtime.Td >gnuradio_swig_py_runtime.d; rm -f gnuradio_swig_py_runtime.Td; \
+ else mv -f gnuradio_swig_py_runtime.Td gnuradio_swig_py_runtime.d; fi \
+ else rm -f gnuradio_swig_py_runtime.Td; exit 1; fi
+
+
+# ----------------------------------------------------------------
+# Part 2: sw_general.i -> gnuradio_swig_py_general
+#
+
+_gnuradio_swig_py_general_la_SOURCES = \
+ gnuradio_swig_py_general.cc
+
+
+_gnuradio_swig_py_general_la_LIBADD = \
$(top_builddir)/gnuradio-core/src/lib/libgnuradio-core.la \
- $(PYTHON_LDFLAGS) \
+ $(PYTHON_LDFLAGS) \
-lstdc++
-_gnuradio_swig_python_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
+_gnuradio_swig_py_general_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
-# KLUDGE: Force runtime include of gnuradio_swig_python.d dependency file.
+# KLUDGE: Force general include of gnuradio_swig_py_general.d dependency file.
# This is not guaranteed to be portable, but will probably work.
# If it works, we have accurate dependencies for our swig stuff, which is good.
-@am__include@ @am__quote@./gnuradio_swig_python.d@am__quote@
+@am__include@ @am__quote@./gnuradio_swig_py_general.d@am__quote@
-gnuradio_swig_python.py gnuradio_swig_python.h: gnuradio_swig_python.cc
+gnuradio_swig_py_general.py gnuradio_swig_py_general.h: gnuradio_swig_py_general.cc
-gnuradio_swig_python.cc : gnuradio.i
- if $(SWIG) $(SWIGPYTHONARGS) -MMD -MF gnuradio_swig_python.Td -module gnuradio_swig_python -o gnuradio_swig_python.cc gnuradio.i ;\
+gnuradio_swig_py_general.cc : sw_general.i
+ if $(SWIG) $(SWIGPYTHONARGS) -MMD -MF gnuradio_swig_py_general.Td -module gnuradio_swig_py_general -o gnuradio_swig_py_general.cc sw_general.i ;\
then if test $(host_os) = mingw32; \
- then sed 's,\\\\,/,g' <gnuradio_swig_python.Td >gnuradio_swig_python.d; rm -f gnuradio_swig_python.Td; \
- else mv -f gnuradio_swig_python.Td gnuradio_swig_python.d; fi \
- else rm -f gnuradio_swig_python.Td; exit 1; fi
+ then sed 's,\\\\,/,g' <gnuradio_swig_py_general.Td >gnuradio_swig_py_general.d; rm -f gnuradio_swig_py_general.Td; \
+ else mv -f gnuradio_swig_py_general.Td gnuradio_swig_py_general.d; fi \
+ else rm -f gnuradio_swig_py_general.Td; exit 1; fi
+
+
+# ----------------------------------------------------------------
+# Part 3: sw_gengen.i -> gnuradio_swig_py_gengen
+#
+
+_gnuradio_swig_py_gengen_la_SOURCES = \
+ gnuradio_swig_py_gengen.cc
+
+
+_gnuradio_swig_py_gengen_la_LIBADD = \
+ $(top_builddir)/gnuradio-core/src/lib/libgnuradio-core.la \
+ $(PYTHON_LDFLAGS) \
+ -lstdc++
+
+_gnuradio_swig_py_gengen_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
-gnuradio_swig_bug_workaround.h : gnuradio_swig_python.cc $(srcdir)/gen-swig-bug-fix
- $(srcdir)/gen-swig-bug-fix gnuradio_swig_python.cc $@
+# KLUDGE: Force gengen include of gnuradio_swig_py_gengen.d dependency file.
+# This is not guaranteed to be portable, but will probably work.
+# If it works, we have accurate dependencies for our swig stuff, which is good.
+@am__include@ @am__quote@./gnuradio_swig_py_gengen.d@am__quote@
+
+gnuradio_swig_py_gengen.py gnuradio_swig_py_gengen.h: gnuradio_swig_py_gengen.cc
+
+gnuradio_swig_py_gengen.cc : sw_gengen.i
+ if $(SWIG) $(SWIGPYTHONARGS) -MMD -MF gnuradio_swig_py_gengen.Td -module gnuradio_swig_py_gengen -o gnuradio_swig_py_gengen.cc sw_gengen.i ;\
+ then if test $(host_os) = mingw32; \
+ then sed 's,\\\\,/,g' <gnuradio_swig_py_gengen.Td >gnuradio_swig_py_gengen.d; rm -f gnuradio_swig_py_gengen.Td; \
+ else mv -f gnuradio_swig_py_gengen.Td gnuradio_swig_py_gengen.d; fi \
+ else rm -f gnuradio_swig_py_gengen.Td; exit 1; fi
+
+
+# ----------------------------------------------------------------
+# Part 4: sw_filter.i -> gnuradio_swig_py_filter
+#
+
+_gnuradio_swig_py_filter_la_SOURCES = \
+ gnuradio_swig_py_filter.cc
+
+
+_gnuradio_swig_py_filter_la_LIBADD = \
+ $(top_builddir)/gnuradio-core/src/lib/libgnuradio-core.la \
+ $(PYTHON_LDFLAGS) \
+ -lstdc++
+
+_gnuradio_swig_py_filter_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
+
+
+# KLUDGE: Force filter include of gnuradio_swig_py_filter.d dependency file.
+# This is not guaranteed to be portable, but will probably work.
+# If it works, we have accurate dependencies for our swig stuff, which is good.
+@am__include@ @am__quote@./gnuradio_swig_py_filter.d@am__quote@
+
+gnuradio_swig_py_filter.py gnuradio_swig_py_filter.h: gnuradio_swig_py_filter.cc
+
+gnuradio_swig_py_filter.cc : sw_filter.i
+ if $(SWIG) $(SWIGPYTHONARGS) -MMD -MF gnuradio_swig_py_filter.Td -module gnuradio_swig_py_filter -o gnuradio_swig_py_filter.cc sw_filter.i ;\
+ then if test $(host_os) = mingw32; \
+ then sed 's,\\\\,/,g' <gnuradio_swig_py_filter.Td >gnuradio_swig_py_filter.d; rm -f gnuradio_swig_py_filter.Td; \
+ else mv -f gnuradio_swig_py_filter.Td gnuradio_swig_py_filter.d; fi \
+ else rm -f gnuradio_swig_py_filter.Td; exit 1; fi
+
+
+# ----------------------------------------------------------------
+# Part 5: sw_io.i -> gnuradio_swig_py_io
+#
+
+_gnuradio_swig_py_io_la_SOURCES = \
+ gnuradio_swig_py_io.cc
+
+
+_gnuradio_swig_py_io_la_LIBADD = \
+ $(top_builddir)/gnuradio-core/src/lib/libgnuradio-core.la \
+ $(PYTHON_LDFLAGS) \
+ -lstdc++
+
+_gnuradio_swig_py_io_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
+
+
+# KLUDGE: Force io include of gnuradio_swig_py_io.d dependency file.
+# This is not guaranteed to be portable, but will probably work.
+# If it works, we have accurate dependencies for our swig stuff, which is good.
+@am__include@ @am__quote@./gnuradio_swig_py_io.d@am__quote@
+
+gnuradio_swig_py_io.py gnuradio_swig_py_io.h: gnuradio_swig_py_io.cc
+
+gnuradio_swig_py_io.cc : sw_io.i
+ if $(SWIG) $(SWIGPYTHONARGS) -MMD -MF gnuradio_swig_py_io.Td -module gnuradio_swig_py_io -o gnuradio_swig_py_io.cc sw_io.i ;\
+ then if test $(host_os) = mingw32; \
+ then sed 's,\\\\,/,g' <gnuradio_swig_py_io.Td >gnuradio_swig_py_io.d; rm -f gnuradio_swig_py_io.Td; \
+ else mv -f gnuradio_swig_py_io.Td gnuradio_swig_py_io.d; fi \
+ else rm -f gnuradio_swig_py_io.Td; exit 1; fi
+
+
+# ----------------------------------------------------------------
+# FIXME As of swig 1.3.31, this still seems to be required...
+gnuradio_swig_bug_workaround.h : gnuradio_swig_py_runtime.cc $(srcdir)/gen-swig-bug-fix
+ $(srcdir)/gen-swig-bug-fix gnuradio_swig_py_runtime.cc $@
# ----------------------------------------------------------------
@@ -111,4 +287,9 @@ swiginclude_HEADERS = \
MOSTLYCLEANFILES = \
$(BUILT_SOURCES) *~ *.pyc
-DISTCLEANFILES = gnuradio_swig_python.d
+DISTCLEANFILES = \
+ gnuradio_swig_py_runtime.d \
+ gnuradio_swig_py_general.d \
+ gnuradio_swig_py_gengen.d \
+ gnuradio_swig_py_filter.d \
+ gnuradio_swig_py_io.d