Merged r10288:10370 from michaelld/swigpythonargs into trunk. Passes distcheck.
[debian/gnuradio] / gr-qtgui / src / lib / Makefile.am
1 #
2 # Copyright 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 so that it ends up as the gnuradio.qtgui module
25 # This usually ends up at:
26 #   ${prefix}/lib/python${python_version}/site-packages/gnuradio/qtgui
27
28 ourpythondir = $(grpythondir)/qtgui
29 ourlibdir    = $(grpyexecdir)/qtgui
30
31 AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(PYTHON_CPPFLAGS) \
32               $(QT_INCLUDES) -I. $(WITH_INCLUDES)
33
34 ALL_IFILES =                            \
35         $(LOCAL_IFILES)                 \
36         $(NON_LOCAL_IFILES)             
37
38 NON_LOCAL_IFILES =                      \
39         $(GNURADIO_I)
40
41 LOCAL_IFILES =                          \
42         $(srcdir)/qtgui.i
43
44 # These files are built by SWIG.  The first is the C++ glue.
45 # The second is the python wrapper that loads the shared library
46 # and knows how to call our extensions.
47
48 # Only include these files in the build if qtgui passes configure checks
49 # This is mostly to help make distcheck pass
50 if BUILD_QT
51 QMAKE_SOURCES =                                 \
52         spectrumdisplayform_moc.cc              \
53         FrequencyDisplayPlot_moc.cc             \
54         TimeDomainDisplayPlot_moc.cc            \
55         WaterfallDisplayPlot_moc.cc             \
56         Waterfall3DDisplayPlot_moc.cc           \
57         spectrumdisplayform_ui.h
58 endif
59
60 EXTRA_DIST = spectrumdisplayform.ui
61
62 BUILT_SOURCES =                                 \
63         qtgui.cc                                \
64         qtgui.py                                \
65         $(QMAKE_SOURCES)
66
67 # This gets qtgui.py installed in the right place
68 ourpython_PYTHON =                      \
69         qtgui.py
70
71 # Build the library for Python module to link against
72 ourlib_LTLIBRARIES = _qtgui.la
73
74 # Build the normal library for C++ apps to link against
75 lib_LTLIBRARIES = libqtgui.la
76
77 # These are the source files that go into the shared library
78 libqtgui_la_SOURCES =   \
79         spectrumdisplayform.cc                  \
80         FrequencyDisplayPlot.cc                 \
81         TimeDomainDisplayPlot.cc                \
82         WaterfallDisplayPlot.cc                 \
83         Waterfall3DDisplayPlot.cc               \
84         waterfallGlobalData.cc                  \
85         SpectrumGUIClass.cc                     \
86         spectrumUpdateEvents.cc                 \
87         plot_waterfall.cc                       \
88         $(QMAKE_SOURCES)                        \
89         qtgui_sink_c.cc                         \
90         qtgui_sink_f.cc
91
92 _qtgui_la_SOURCES =                     \
93         $(libqtgui_la_SOURCES)          \
94         qtgui.cc
95
96 # These headers get installed in ${prefix}/include/gnuradio
97 grinclude_HEADERS =                     \
98         spectrumdisplayform.h           \
99         FrequencyDisplayPlot.h          \
100         TimeDomainDisplayPlot.h         \
101         WaterfallDisplayPlot.h          \
102         Waterfall3DDisplayPlot.h        \
103         SpectrumGUIClass.h              \
104         waterfallGlobalData.h           \
105         highResTimeFunctions.h          \
106         plot_waterfall.h                \
107         spectrumUpdateEvents.h          \
108         qtgui.h                         \
109         qtgui_sink_c.h                  \
110         qtgui_sink_f.h
111
112 if BUILD_QT
113 %_moc.cc : %.h
114         $(QT_MOC_EXEC) -DQT_SHARED -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB $< -o $@
115
116 %_ui.h : %.ui
117         $(QT_UIC_EXEC) $< -o $@
118 else
119 %_moc.cc : %.h
120         touch $@
121
122 %_ui.h : %.ui
123         touch $@
124 endif
125
126 # magic flags
127 _qtgui_la_LDFLAGS = $(NO_UNDEFINED) -module -avoid-version
128 libqtgui_la_LDFLAGS = $(NO_UNDEFINED) -version-info 0:0:0
129
130 # link the library against the c++ standard library
131 _qtgui_la_LIBADD =              \
132         $(PYTHON_LDFLAGS)       \
133         $(GNURADIO_CORE_LA)     \
134         -lstdc++                \
135         $(QT_LIBS)
136
137
138 libqtgui_la_LIBADD =            \
139         $(GNURADIO_CORE_LA)     \
140         -lstdc++                \
141         $(QT_LIBS)
142
143 qtgui.cc qtgui.py: $(ALL_IFILES)
144         $(SWIG) $(STD_SWIG_PYTHON_ARGS) -module qtgui \
145                 -o qtgui.cc $(LOCAL_IFILES)
146
147 # These swig headers get installed in ${prefix}/include/gnuradio/swig
148 swiginclude_HEADERS =                   \
149         $(LOCAL_IFILES)
150
151
152 MOSTLYCLEANFILES = $(BUILT_SOURCES) *.pyc
153
154 # Don't distribute output of swig
155 dist-hook:
156         @for file in $(BUILT_SOURCES); do echo $(RM) $(distdir)/$$file; done
157         @for file in $(BUILT_SOURCES); do $(RM) $(distdir)/$$file; done