Merged r10385:10413 from michaelld/swig_tweaks into trunk. Passes distcheck.
[debian/gnuradio] / gnuradio-core / src / lib / swig / Makefile.am
1 #
2 # Copyright 2001,2003,2004,2005,2006,2007,2008,2009 Free Software Foundation, Inc.
3
4 # This file is part of GNU Radio
5
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)
9 # any later version.
10
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.
15
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.
20
21
22 include $(top_srcdir)/Makefile.common
23
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
27
28 grgrpythondir = $(grpythondir)/gr
29 grgrlibdir    = $(grpyexecdir)/gr
30
31 AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(PYTHON_CPPFLAGS) -I$(srcdir) \
32          $(WITH_INCLUDES)
33
34 EXTRA_DIST = gen-swig-bug-fix
35
36 LOCAL_IFILES =                          \
37         gnuradio.i                      \
38         gr_swig_block_magic.i           \
39         gr_shared_ptr.i                 \
40         sw_general.i                    \
41         sw_gengen.i                     \
42         sw_filter.i                     \
43         sw_io.i                         \
44         sw_runtime.i
45
46 ALL_IFILES =                            \
47         $(LOCAL_IFILES)
48
49 # ----------------------------------------------------------------
50 # We've split the previously monstrous gnuradio_swig_python into
51 # 5 smaller pieces.  This reduces compile time coupling and
52 # creates smaller pieces for the compiler to digest.
53 # prior to this change, on X86_64, g++'s resident set size was
54 # 650MB!
55
56 BUILT_SOURCES =                         \
57         gnuradio_swig_py_runtime.cc     \
58         gnuradio_swig_py_runtime.py     \
59         gnuradio_swig_py_runtime.h      \
60         gnuradio_swig_py_general.cc     \
61         gnuradio_swig_py_general.py     \
62         gnuradio_swig_py_general.h      \
63         gnuradio_swig_py_gengen.cc      \
64         gnuradio_swig_py_gengen.py      \
65         gnuradio_swig_py_gengen.h       \
66         gnuradio_swig_py_filter.cc      \
67         gnuradio_swig_py_filter.py      \
68         gnuradio_swig_py_filter.h       \
69         gnuradio_swig_py_io.cc          \
70         gnuradio_swig_py_io.py          \
71         gnuradio_swig_py_io.h           \
72         gnuradio_swig_bug_workaround.h  
73
74 # ----------------------------------------------------------------
75 # We break this up into 5 libraries...
76
77 grgrlib_LTLIBRARIES =                           \
78         _gnuradio_swig_py_runtime.la            \
79         _gnuradio_swig_py_general.la            \
80         _gnuradio_swig_py_gengen.la             \
81         _gnuradio_swig_py_filter.la             \
82         _gnuradio_swig_py_io.la                 
83
84
85 grgrpython_PYTHON =                     \
86         gnuradio_swig_python.py         \
87         gnuradio_swig_py_runtime.py     \
88         gnuradio_swig_py_general.py     \
89         gnuradio_swig_py_gengen.py      \
90         gnuradio_swig_py_filter.py      \
91         gnuradio_swig_py_io.py          
92
93
94 # This results in the code being compiled with -O1 instead of -g -O2
95
96 _gnuradio_swig_py_runtime_la_CXXFLAGS = @swig_CXXFLAGS@
97 _gnuradio_swig_py_general_la_CXXFLAGS = @swig_CXXFLAGS@
98 _gnuradio_swig_py_gengen_la_CXXFLAGS  = @swig_CXXFLAGS@
99 _gnuradio_swig_py_filter_la_CXXFLAGS  = @swig_CXXFLAGS@
100 _gnuradio_swig_py_io_la_CXXFLAGS      = @swig_CXXFLAGS@
101
102
103 # ----------------------------------------------------------------
104 # Part 1: sw_runtime.i -> gnuradio_swig_py_runtime
105 #
106 # We continue to call this gnuradio.i to avoid having to touch
107 # lots of code in other modules
108
109 _gnuradio_swig_py_runtime_la_SOURCES =          \
110         gnuradio_swig_py_runtime.cc             
111
112
113 _gnuradio_swig_py_runtime_la_LIBADD  =          \
114         $(GNURADIO_CORE_LA)                     \
115         $(PYTHON_LDFLAGS)                       \
116         -lstdc++
117
118 _gnuradio_swig_py_runtime_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
119
120
121 # KLUDGE: Force runtime include of gnuradio_swig_py_runtime.d dependency file.
122 # This is not guaranteed to be portable, but will probably work.
123 # If it works, we have accurate dependencies for our swig stuff, which is good.
124 @am__include@ @am__quote@./gnuradio_swig_py_runtime.d@am__quote@
125
126 gnuradio_swig_py_runtime.py gnuradio_swig_py_runtime.h: gnuradio_swig_py_runtime.cc
127
128 gnuradio_swig_py_runtime.cc : $(srcdir)/sw_runtime.i
129         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)/sw_runtime.i ;\
130         then if test $(host_os) = mingw32; \
131              then sed 's,\\\\,/,g' <gnuradio_swig_py_runtime.Td >gnuradio_swig_py_runtime.d; rm -f gnuradio_swig_py_runtime.Td; \
132              else mv -f gnuradio_swig_py_runtime.Td gnuradio_swig_py_runtime.d; fi \
133         else rm -f gnuradio_swig_py_runtime.Td; exit 1; fi 
134
135
136 # ----------------------------------------------------------------
137 # Part 2: sw_general.i -> gnuradio_swig_py_general
138 #
139
140 _gnuradio_swig_py_general_la_SOURCES =          \
141         gnuradio_swig_py_general.cc             
142
143
144 _gnuradio_swig_py_general_la_LIBADD  =          \
145         $(GNURADIO_CORE_LA)                     \
146         $(PYTHON_LDFLAGS)                       \
147         -lstdc++
148
149 _gnuradio_swig_py_general_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
150
151
152 # KLUDGE: Force general include of gnuradio_swig_py_general.d dependency file.
153 # This is not guaranteed to be portable, but will probably work.
154 # If it works, we have accurate dependencies for our swig stuff, which is good.
155 @am__include@ @am__quote@./gnuradio_swig_py_general.d@am__quote@
156
157 gnuradio_swig_py_general.py gnuradio_swig_py_general.h: gnuradio_swig_py_general.cc
158
159 gnuradio_swig_py_general.cc : $(srcdir)/sw_general.i
160         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 ;\
161         then if test $(host_os) = mingw32; \
162              then sed 's,\\\\,/,g' <gnuradio_swig_py_general.Td >gnuradio_swig_py_general.d; rm -f gnuradio_swig_py_general.Td; \
163              else mv -f gnuradio_swig_py_general.Td gnuradio_swig_py_general.d; fi \
164         else rm -f gnuradio_swig_py_general.Td; exit 1; fi 
165
166
167 # ----------------------------------------------------------------
168 # Part 3: sw_gengen.i -> gnuradio_swig_py_gengen
169 #
170
171 _gnuradio_swig_py_gengen_la_SOURCES =           \
172         gnuradio_swig_py_gengen.cc              
173
174
175 _gnuradio_swig_py_gengen_la_LIBADD  =           \
176         $(GNURADIO_CORE_LA)                     \
177         $(PYTHON_LDFLAGS)                       \
178         -lstdc++
179
180 _gnuradio_swig_py_gengen_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
181
182
183 # KLUDGE: Force gengen include of gnuradio_swig_py_gengen.d dependency file.
184 # This is not guaranteed to be portable, but will probably work.
185 # If it works, we have accurate dependencies for our swig stuff, which is good.
186 @am__include@ @am__quote@./gnuradio_swig_py_gengen.d@am__quote@
187
188 gnuradio_swig_py_gengen.py gnuradio_swig_py_gengen.h: gnuradio_swig_py_gengen.cc
189
190 gnuradio_swig_py_gengen.cc : $(srcdir)/sw_gengen.i
191         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 ;\
192         then if test $(host_os) = mingw32; \
193              then sed 's,\\\\,/,g' <gnuradio_swig_py_gengen.Td >gnuradio_swig_py_gengen.d; rm -f gnuradio_swig_py_gengen.Td; \
194              else mv -f gnuradio_swig_py_gengen.Td gnuradio_swig_py_gengen.d; fi \
195         else rm -f gnuradio_swig_py_gengen.Td; exit 1; fi 
196
197
198 # ----------------------------------------------------------------
199 # Part 4: sw_filter.i -> gnuradio_swig_py_filter
200 #
201
202 _gnuradio_swig_py_filter_la_SOURCES =           \
203         gnuradio_swig_py_filter.cc              
204
205
206 _gnuradio_swig_py_filter_la_LIBADD  =           \
207         $(GNURADIO_CORE_LA)                     \
208         $(PYTHON_LDFLAGS)                       \
209         -lstdc++
210
211 _gnuradio_swig_py_filter_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
212
213
214 # KLUDGE: Force filter include of gnuradio_swig_py_filter.d dependency file.
215 # This is not guaranteed to be portable, but will probably work.
216 # If it works, we have accurate dependencies for our swig stuff, which is good.
217 @am__include@ @am__quote@./gnuradio_swig_py_filter.d@am__quote@
218
219 gnuradio_swig_py_filter.py gnuradio_swig_py_filter.h: gnuradio_swig_py_filter.cc
220
221 gnuradio_swig_py_filter.cc : $(srcdir)/sw_filter.i
222         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 ;\
223         then if test $(host_os) = mingw32; \
224              then sed 's,\\\\,/,g' <gnuradio_swig_py_filter.Td >gnuradio_swig_py_filter.d; rm -f gnuradio_swig_py_filter.Td; \
225              else mv -f gnuradio_swig_py_filter.Td gnuradio_swig_py_filter.d; fi \
226         else rm -f gnuradio_swig_py_filter.Td; exit 1; fi 
227
228
229 # ----------------------------------------------------------------
230 # Part 5: sw_io.i -> gnuradio_swig_py_io
231 #
232
233 _gnuradio_swig_py_io_la_SOURCES =               \
234         gnuradio_swig_py_io.cc          
235
236
237 _gnuradio_swig_py_io_la_LIBADD  =               \
238         $(GNURADIO_CORE_LA)                     \
239         $(PYTHON_LDFLAGS)                       \
240         -lstdc++
241
242 _gnuradio_swig_py_io_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
243
244
245 # KLUDGE: Force io include of gnuradio_swig_py_io.d dependency file.
246 # This is not guaranteed to be portable, but will probably work.
247 # If it works, we have accurate dependencies for our swig stuff, which is good.
248 @am__include@ @am__quote@./gnuradio_swig_py_io.d@am__quote@
249
250 gnuradio_swig_py_io.py gnuradio_swig_py_io.h: gnuradio_swig_py_io.cc
251
252 gnuradio_swig_py_io.cc : $(srcdir)/sw_io.i
253         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 ;\
254         then if test $(host_os) = mingw32; \
255              then sed 's,\\\\,/,g' <gnuradio_swig_py_io.Td >gnuradio_swig_py_io.d; rm -f gnuradio_swig_py_io.Td; \
256              else mv -f gnuradio_swig_py_io.Td gnuradio_swig_py_io.d; fi \
257         else rm -f gnuradio_swig_py_io.Td; exit 1; fi 
258
259
260 # ----------------------------------------------------------------
261 # FIXME As of swig 1.3.31, this still seems to be required...
262
263 gnuradio_swig_bug_workaround.h : gnuradio_swig_py_runtime.cc $(srcdir)/gen-swig-bug-fix
264         $(PYTHON) $(srcdir)/gen-swig-bug-fix gnuradio_swig_py_runtime.cc $@
265
266 # ----------------------------------------------------------------
267
268 # Don't distribute output of swig
269 dist-hook:
270         @for file in $(BUILT_SOURCES); do echo $(RM) $(distdir)/$$file; done
271         @for file in $(BUILT_SOURCES); do $(RM) $(distdir)/$$file; done
272
273
274 grinclude_HEADERS =                             \
275         gnuradio_swig_bug_workaround.h
276
277 swiginclude_HEADERS =                           \
278         $(LOCAL_IFILES)                 
279
280 MOSTLYCLEANFILES = \
281         $(BUILT_SOURCES) *~ *.pyc 
282
283 DISTCLEANFILES =                        \
284         gnuradio_swig_py_runtime.d      \
285         gnuradio_swig_py_general.d      \
286         gnuradio_swig_py_gengen.d       \
287         gnuradio_swig_py_filter.d       \
288         gnuradio_swig_py_io.d