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