2 # Copyright 2001,2003,2004,2005,2006,2007,2008,2009 Free Software Foundation, Inc.
4 # This file is part of GNU Radio
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)
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.
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.
22 include $(top_srcdir)/Makefile.common
24 # Install this stuff in the gr subdirectory of the python pkg dir.
25 # This usually ends up at:
26 # ${prefix}/lib/python${python_version}/site-packages/gnuradio/gr
28 grgrpythondir = $(grpythondir)/gr
29 grgrlibdir = $(grpyexecdir)/gr
31 AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(PYTHON_CPPFLAGS) -I$(srcdir) \
34 EXTRA_DIST = gen-swig-bug-fix
47 # ----------------------------------------------------------------
48 # We've split the previously monstrous gnuradio_swig_python into
49 # 5 smaller pieces. This reduces compile time coupling and
50 # creates smaller pieces for the compiler to digest.
51 # prior to this change, on X86_64, g++'s resident set size was
55 gnuradio_swig_py_runtime.cc \
56 gnuradio_swig_py_runtime.py \
57 gnuradio_swig_py_runtime.h \
58 gnuradio_swig_py_general.cc \
59 gnuradio_swig_py_general.py \
60 gnuradio_swig_py_general.h \
61 gnuradio_swig_py_gengen.cc \
62 gnuradio_swig_py_gengen.py \
63 gnuradio_swig_py_gengen.h \
64 gnuradio_swig_py_filter.cc \
65 gnuradio_swig_py_filter.py \
66 gnuradio_swig_py_filter.h \
67 gnuradio_swig_py_io.cc \
68 gnuradio_swig_py_io.py \
69 gnuradio_swig_py_io.h \
70 gnuradio_swig_bug_workaround.h
72 # ----------------------------------------------------------------
73 # We break this up into 5 libraries...
75 grgrlib_LTLIBRARIES = \
76 _gnuradio_swig_py_runtime.la \
77 _gnuradio_swig_py_general.la \
78 _gnuradio_swig_py_gengen.la \
79 _gnuradio_swig_py_filter.la \
80 _gnuradio_swig_py_io.la
84 gnuradio_swig_python.py \
85 gnuradio_swig_py_runtime.py \
86 gnuradio_swig_py_general.py \
87 gnuradio_swig_py_gengen.py \
88 gnuradio_swig_py_filter.py \
89 gnuradio_swig_py_io.py
92 # This results in the code being compiled with -O1 instead of -g -O2
94 _gnuradio_swig_py_runtime_la_CXXFLAGS = @swig_CXXFLAGS@
95 _gnuradio_swig_py_general_la_CXXFLAGS = @swig_CXXFLAGS@
96 _gnuradio_swig_py_gengen_la_CXXFLAGS = @swig_CXXFLAGS@
97 _gnuradio_swig_py_filter_la_CXXFLAGS = @swig_CXXFLAGS@
98 _gnuradio_swig_py_io_la_CXXFLAGS = @swig_CXXFLAGS@
101 # ----------------------------------------------------------------
102 # Part 1: gnuradio.i -> gnuradio_swig_py_runtime
104 # We continue to call this gnuradio.i to avoid having to touch
105 # lots of code in other modules
107 _gnuradio_swig_py_runtime_la_SOURCES = \
108 gnuradio_swig_py_runtime.cc
111 _gnuradio_swig_py_runtime_la_LIBADD = \
112 $(GNURADIO_CORE_LA) \
116 _gnuradio_swig_py_runtime_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
119 # KLUDGE: Force runtime include of gnuradio_swig_py_runtime.d dependency file.
120 # This is not guaranteed to be portable, but will probably work.
121 # If it works, we have accurate dependencies for our swig stuff, which is good.
122 @am__include@ @am__quote@./gnuradio_swig_py_runtime.d@am__quote@
124 gnuradio_swig_py_runtime.py gnuradio_swig_py_runtime.h: gnuradio_swig_py_runtime.cc
126 gnuradio_swig_py_runtime.cc : $(srcdir)/gnuradio.i
127 if $(SWIG) $(STD_SWIG_PYTHON_ARGS) -MMD -MF gnuradio_swig_py_runtime.Td -module gnuradio_swig_py_runtime -o gnuradio_swig_py_runtime.cc $(srcdir)/gnuradio.i ;\
128 then if test $(host_os) = mingw32; \
129 then sed 's,\\\\,/,g' <gnuradio_swig_py_runtime.Td >gnuradio_swig_py_runtime.d; rm -f gnuradio_swig_py_runtime.Td; \
130 else mv -f gnuradio_swig_py_runtime.Td gnuradio_swig_py_runtime.d; fi \
131 else rm -f gnuradio_swig_py_runtime.Td; exit 1; fi
134 # ----------------------------------------------------------------
135 # Part 2: sw_general.i -> gnuradio_swig_py_general
138 _gnuradio_swig_py_general_la_SOURCES = \
139 gnuradio_swig_py_general.cc
142 _gnuradio_swig_py_general_la_LIBADD = \
143 $(GNURADIO_CORE_LA) \
147 _gnuradio_swig_py_general_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
150 # KLUDGE: Force general include of gnuradio_swig_py_general.d dependency file.
151 # This is not guaranteed to be portable, but will probably work.
152 # If it works, we have accurate dependencies for our swig stuff, which is good.
153 @am__include@ @am__quote@./gnuradio_swig_py_general.d@am__quote@
155 gnuradio_swig_py_general.py gnuradio_swig_py_general.h: gnuradio_swig_py_general.cc
157 gnuradio_swig_py_general.cc : $(srcdir)/sw_general.i
158 if $(SWIG) $(STD_SWIG_PYTHON_ARGS) -MMD -MF gnuradio_swig_py_general.Td -module gnuradio_swig_py_general -o gnuradio_swig_py_general.cc $(srcdir)/sw_general.i ;\
159 then if test $(host_os) = mingw32; \
160 then sed 's,\\\\,/,g' <gnuradio_swig_py_general.Td >gnuradio_swig_py_general.d; rm -f gnuradio_swig_py_general.Td; \
161 else mv -f gnuradio_swig_py_general.Td gnuradio_swig_py_general.d; fi \
162 else rm -f gnuradio_swig_py_general.Td; exit 1; fi
165 # ----------------------------------------------------------------
166 # Part 3: sw_gengen.i -> gnuradio_swig_py_gengen
169 _gnuradio_swig_py_gengen_la_SOURCES = \
170 gnuradio_swig_py_gengen.cc
173 _gnuradio_swig_py_gengen_la_LIBADD = \
174 $(GNURADIO_CORE_LA) \
178 _gnuradio_swig_py_gengen_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
181 # KLUDGE: Force gengen include of gnuradio_swig_py_gengen.d dependency file.
182 # This is not guaranteed to be portable, but will probably work.
183 # If it works, we have accurate dependencies for our swig stuff, which is good.
184 @am__include@ @am__quote@./gnuradio_swig_py_gengen.d@am__quote@
186 gnuradio_swig_py_gengen.py gnuradio_swig_py_gengen.h: gnuradio_swig_py_gengen.cc
188 gnuradio_swig_py_gengen.cc : $(srcdir)/sw_gengen.i
189 if $(SWIG) $(STD_SWIG_PYTHON_ARGS) -MMD -MF gnuradio_swig_py_gengen.Td -module gnuradio_swig_py_gengen -o gnuradio_swig_py_gengen.cc $(srcdir)/sw_gengen.i ;\
190 then if test $(host_os) = mingw32; \
191 then sed 's,\\\\,/,g' <gnuradio_swig_py_gengen.Td >gnuradio_swig_py_gengen.d; rm -f gnuradio_swig_py_gengen.Td; \
192 else mv -f gnuradio_swig_py_gengen.Td gnuradio_swig_py_gengen.d; fi \
193 else rm -f gnuradio_swig_py_gengen.Td; exit 1; fi
196 # ----------------------------------------------------------------
197 # Part 4: sw_filter.i -> gnuradio_swig_py_filter
200 _gnuradio_swig_py_filter_la_SOURCES = \
201 gnuradio_swig_py_filter.cc
204 _gnuradio_swig_py_filter_la_LIBADD = \
205 $(GNURADIO_CORE_LA) \
209 _gnuradio_swig_py_filter_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
212 # KLUDGE: Force filter include of gnuradio_swig_py_filter.d dependency file.
213 # This is not guaranteed to be portable, but will probably work.
214 # If it works, we have accurate dependencies for our swig stuff, which is good.
215 @am__include@ @am__quote@./gnuradio_swig_py_filter.d@am__quote@
217 gnuradio_swig_py_filter.py gnuradio_swig_py_filter.h: gnuradio_swig_py_filter.cc
219 gnuradio_swig_py_filter.cc : $(srcdir)/sw_filter.i
220 if $(SWIG) $(STD_SWIG_PYTHON_ARGS) -MMD -MF gnuradio_swig_py_filter.Td -module gnuradio_swig_py_filter -o gnuradio_swig_py_filter.cc $(srcdir)/sw_filter.i ;\
221 then if test $(host_os) = mingw32; \
222 then sed 's,\\\\,/,g' <gnuradio_swig_py_filter.Td >gnuradio_swig_py_filter.d; rm -f gnuradio_swig_py_filter.Td; \
223 else mv -f gnuradio_swig_py_filter.Td gnuradio_swig_py_filter.d; fi \
224 else rm -f gnuradio_swig_py_filter.Td; exit 1; fi
227 # ----------------------------------------------------------------
228 # Part 5: sw_io.i -> gnuradio_swig_py_io
231 _gnuradio_swig_py_io_la_SOURCES = \
232 gnuradio_swig_py_io.cc
235 _gnuradio_swig_py_io_la_LIBADD = \
236 $(GNURADIO_CORE_LA) \
240 _gnuradio_swig_py_io_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
243 # KLUDGE: Force io include of gnuradio_swig_py_io.d dependency file.
244 # This is not guaranteed to be portable, but will probably work.
245 # If it works, we have accurate dependencies for our swig stuff, which is good.
246 @am__include@ @am__quote@./gnuradio_swig_py_io.d@am__quote@
248 gnuradio_swig_py_io.py gnuradio_swig_py_io.h: gnuradio_swig_py_io.cc
250 gnuradio_swig_py_io.cc : $(srcdir)/sw_io.i
251 if $(SWIG) $(STD_SWIG_PYTHON_ARGS) -MMD -MF gnuradio_swig_py_io.Td -module gnuradio_swig_py_io -o gnuradio_swig_py_io.cc $(srcdir)/sw_io.i ;\
252 then if test $(host_os) = mingw32; \
253 then sed 's,\\\\,/,g' <gnuradio_swig_py_io.Td >gnuradio_swig_py_io.d; rm -f gnuradio_swig_py_io.Td; \
254 else mv -f gnuradio_swig_py_io.Td gnuradio_swig_py_io.d; fi \
255 else rm -f gnuradio_swig_py_io.Td; exit 1; fi
258 # ----------------------------------------------------------------
259 # FIXME As of swig 1.3.31, this still seems to be required...
261 gnuradio_swig_bug_workaround.h : gnuradio_swig_py_runtime.cc $(srcdir)/gen-swig-bug-fix
262 $(PYTHON) $(srcdir)/gen-swig-bug-fix gnuradio_swig_py_runtime.cc $@
264 # ----------------------------------------------------------------
266 # Don't distribute output of swig
268 @for file in $(BUILT_SOURCES); do echo $(RM) $(distdir)/$$file; done
269 @for file in $(BUILT_SOURCES); do $(RM) $(distdir)/$$file; done
272 grinclude_HEADERS = \
273 gnuradio_swig_bug_workaround.h
275 swiginclude_HEADERS = \
279 $(BUILT_SOURCES) *~ *.pyc
282 gnuradio_swig_py_runtime.d \
283 gnuradio_swig_py_general.d \
284 gnuradio_swig_py_gengen.d \
285 gnuradio_swig_py_filter.d \
286 gnuradio_swig_py_io.d