From 95254c28c18277012907354ae9fa5aef295271b8 Mon Sep 17 00:00:00 2001
From: Eric Blossom <eb@comsec.com>
Date: Sat, 4 Dec 2010 00:49:17 -0800
Subject: Move swig related suffix/pattern rules from Makefile.common to
 Makefile.swig.

---
 gr-howto-write-a-block/Makefile.swig | 32 ++++++++++++++++++++++++++++++--
 1 file changed, 30 insertions(+), 2 deletions(-)

(limited to 'gr-howto-write-a-block/Makefile.swig')

diff --git a/gr-howto-write-a-block/Makefile.swig b/gr-howto-write-a-block/Makefile.swig
index 327b566e1e..2ed69c6c78 100644
--- a/gr-howto-write-a-block/Makefile.swig
+++ b/gr-howto-write-a-block/Makefile.swig
@@ -92,8 +92,8 @@ STD_SWIG_CXX_FLAGS = @swig_CXXFLAGS@
 
 # We drive the dependencies off of swig_built_sources.  This variable
 # ends up containing only the generated .py and/or .scm files, not the .h
-# or .cc files.  This allows us to use the pattern rules in
-# Makefile.common to generate all the pieces without the parallel make
+# or .cc files.  This allows us to use the pattern rules defined
+# below to generate all the pieces without the parallel make
 # problems that occur when both the .py's and .cc's are in swig_built_sources.
 
 swig_built_sources =
@@ -137,6 +137,34 @@ CLEANFILES += python/*.lo python/*.o python/*.d
 CLEANFILES += guile/*.lo  guile/*.o  guile/*.d
 
 
+## SWIG suffixes for automake to know about
+SUFFIXES = .i .scm .py
+
+# Compile a .i to what guile needs. We use -o to set the output file name,
+# or even with -outdir guile in SWIG_GUILE_ARGS, swig keeps putting a 
+# gnuradio_core_*_wrap.cxx in the source directory.
+gnuradio/%.scm : %.i
+	@echo "Compile .i to .scm"
+	@test -d "guile" || $(mkinstalldirs) "guile"
+	@test -d "gnuradio" || $(mkinstalldirs) "gnuradio"
+	$(SWIG) $(STD_SWIG_GUILE_ARGS) $($*_swig_args) \
+		-MD -MF guile/$*.Std \
+		-module $* -o guile/$*.cc $<
+	$(SED) -e 's|guile/\(.*\)\.cc:|gnuradio/\1.scm:|' guile/$*.Std > guile/$*.d
+	$(SED) -i -e 's/<--dummy-[0-9]\+-->/<top>/g' gnuradio/$*.scm
+	$(SED) -i -e 's/^(export /(export-safely /' gnuradio/$*.scm
+	$(RM) guile/$*.Std
+
+# Compile a .i file to what python needs
+.i.py:
+	@echo "Compile .i to .py"
+	@test -d "python" || $(mkinstalldirs) "python"
+	$(SWIG) $(STD_SWIG_PYTHON_ARGS) $($*_swig_args) \
+		-MD -MF python/$*.Std \
+		-module $* -o python/$*.cc -oh python/$*.h $<
+	$(SED) -e 's|python/\(.*\)\.cc:|\1.py:|' python/$*.Std > python/$*.d
+	$(RM) python/$*.Std
+
 ## ------------------------------------------------------------------------
 ## Rule that (re)generates Makefile.swig.gen using TOP_SWIG_IFILES and
 ## Makefile.swig.gen.t
-- 
cgit v1.2.3