Statistics
| Branch: | Tag: | Revision:

root / gnuradio-core / src / lib / swig / Makefile.am @ e10941aa

History | View | Annotate | Download (10.1 kB)

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