Changes to handle compilers that don't have variadic macro support. In particular...
[platform/upstream/gstreamer.git] / gst / Makefile.am
1 lib_LTLIBRARIES = libgstreamer-@GST_MAJORMINOR@.la
2 AS_LIBTOOL_LIB = libgstreamer-@GST_MAJORMINOR@
3 if GST_DISABLE_OMEGA_COTHREADS
4 noinst_LTLIBRARIES =
5 else
6 noinst_LTLIBRARIES = libcothreads.la
7 endif
8
9 #GST_INSTRUMENT_FLAGS = -finstrument-functions -DGST_ENABLE_FUNC_INSTRUMENTATION
10
11 if GST_DISABLE_LOADSAVE
12 GST_LOADSAVE_SRC = 
13 else
14 GST_LOADSAVE_SRC = gstxml.c
15 endif
16
17 if GST_DISABLE_PARSE
18 GST_PARSE_SRC = 
19 GST_PARSE_DIRS = 
20 GST_PARSE_LIBADD = 
21 else
22 GST_PARSE_SRC = gstparse.c
23 GST_PARSE_DIRS = parse
24 GST_PARSE_LIBADD = parse/libgstparse.la 
25 endif
26
27 if GST_DISABLE_TRACE
28 GST_TRACE_SRC = 
29 else
30 GST_TRACE_SRC = gsttrace.c
31 endif
32
33 if GST_DISABLE_REGISTRY
34 GST_REGISTRY_SRC = 
35 GST_REGISTRY_DIRS =
36 GST_REGISTRY_LIBADD = 
37 else
38 GST_REGISTRY_SRC = gstregistry.c
39 GST_REGISTRY_DIRS = registries
40 GST_REGISTRY_LIBADD = registries/libgstxmlregistry.la
41 endif
42
43 if GST_DISABLE_ENUMTYPES
44 GST_ENUMTYPES_SRC = 
45 else
46 GST_ENUMTYPES_SRC = gstenumtypes.c
47 endif
48
49 if GST_DISABLE_INDEX
50 GST_INDEX_SRC = 
51 GST_INDEX_DIRS =
52 else
53 GST_INDEX_SRC = gstindex.c
54 GST_INDEX_DIRS = indexers
55 endif
56
57 if GST_DISABLE_PLUGIN
58 GST_PLUGIN_SRC = 
59 else
60 GST_PLUGIN_SRC = gstplugin.c
61 endif
62
63 if GST_DISABLE_URI
64 GST_URI_SRC = 
65 else
66 GST_URI_SRC = gsturi.c
67 endif
68
69 SUBDIRS = $(GST_PARSE_DIRS) $(GST_REGISTRY_DIRS) . autoplug elements schedulers $(GST_INDEX_DIRS) 
70 DIST_SUBDIRS = autoplug elements parse registries schedulers indexers
71
72 # make variables for all generated source and header files to make the
73 # distinction clear
74                                                                                 
75 built_header_configure = gstconfig.h gstversion.h
76 built_header_make = gstenumtypes.h gstmarshal.h
77 built_source_make = $(GST_ENUMTYPES_SRC) gstmarshal.c
78
79 EXTRA_libgstreamer_@GST_MAJORMINOR@_la_SOURCES = \
80         gstmarshal.list gstxml.c gstparse.c gsttrace.c
81
82 libgstreamer_@GST_MAJORMINOR@_la_SOURCES = \
83         gst.c                   \
84         gstobject.c             \
85         gstatomic.c             \
86         gstbin.c                \
87         gstbuffer.c             \
88         gstcaps.c               \
89         gstclock.c              \
90         gstcpu.c                \
91         gstdata.c               \
92         gstelement.c            \
93         gstelementfactory.c     \
94         gsterror.c              \
95         gstevent.c              \
96         gstfilter.c             \
97         gstformat.c             \
98         $(GST_INDEX_SRC)        \
99         gstinfo.c               \
100         gstinterface.c          \
101         gstmemchunk.c           \
102         gstpad.c                \
103         gstpipeline.c           \
104         gstplugin.c             \
105         gstpluginfeature.c      \
106         gstprobe.c              \
107         gstqueue.c              \
108         gstquery.c              \
109         gstscheduler.c          \
110         gststructure.c          \
111         gstsystemclock.c        \
112         gsttag.c                \
113         gsttaginterface.c       \
114         gstthread.c             \
115         $(GST_TRACE_SRC)        \
116         gsttrashstack.c         \
117         gsttypefind.c           \
118         $(GST_URI_SRC)          \
119         gsturitype.c            \
120         gstutils.c              \
121         gstvalue.c              \
122         $(GST_REGISTRY_SRC)     \
123         gstregistrypool.c       \
124         $(GST_PARSE_SRC)        \
125         $(GSTARCH_SRCS)         \
126         $(GST_LOADSAVE_SRC)
127
128 # do not put files in the distribution that are generated
129 nodist_libgstreamer_@GST_MAJORMINOR@_la_SOURCES = $(built_source_make)
130
131 # BUILT_SOURCES are built on make all/check/install before all other targets
132 BUILT_SOURCES = \
133         $(built_header_configure)       \
134         $(built_header_make)            \
135         $(built_source_make)
136 # CLEANFILES is for files generated by make
137 CLEANFILES = $(built_header_make) $(built_source_make) $(as_dll_cleanfiles)
138 # DISTCLEANFILES is for files generated by configure
139 DISTCLEANFILES = $(built_header_configure)
140                                                                                 
141 libgstreamer_@GST_MAJORMINOR@_la_CFLAGS =       \
142         -D_GNU_SOURCE                           \
143         $(GST_LIB_CFLAGS)                       \
144         -DG_LOG_DOMAIN=g_log_domain_gstreamer   \
145         -DGST_MAJORMINOR=\""$(GST_MAJORMINOR)"\" 
146 libgstreamer_@GST_MAJORMINOR@_la_LIBADD = \
147         $(GST_LIB_LIBS) $(GST_PARSE_LIBADD) $(GST_REGISTRY_LIBADD)
148 libgstreamer_@GST_MAJORMINOR@_la_LDFLAGS = \
149         @GST_LT_LDFLAGS@ -version-info @GST_LIBVERSION@ \
150         -export-symbols-regex [_]*\(gst_\|Gst\|GST_\).* \
151         $(as_libtool_LDFLAGS)
152
153 libgstreamer_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst
154
155 gst_headers =                   \
156         gst.h                   \
157         gstatomic.h             \
158         gstobject.h             \
159         gstbin.h                \
160         gstbuffer.h             \
161         gstcaps.h               \
162         gstclock.h              \
163         gstcompat.h             \
164         gstcpu.h                \
165         gstdata.h               \
166         gstelement.h            \
167         gsterror.h              \
168         gstevent.h              \
169         gstfilter.h             \
170         gstformat.h             \
171         gstindex.h              \
172         gstinfo.h               \
173         gstinterface.h          \
174         gstmacros.h             \
175         gstmemchunk.h           \
176         gstpad.h                \
177         gstpipeline.h           \
178         gstplugin.h             \
179         gstpluginfeature.h      \
180         gstprobe.h              \
181         gstqueue.h              \
182         gstquery.h              \
183         gstscheduler.h          \
184         gststructure.h          \
185         gstsystemclock.h        \
186         gsttag.h                \
187         gsttaginterface.h       \
188         gstthread.h             \
189         gsttrace.h              \
190         gsttrashstack.h         \
191         gsttypefind.h           \
192         gsttypes.h              \
193         gsturi.h                \
194         gsturitype.h            \
195         gstutils.h              \
196         gstvalue.h              \
197         gstregistry.h           \
198         gstregistrypool.h       \
199         gstparse.h              \
200         gstxml.h
201
202 libgstreamer_@GST_MAJORMINOR@include_HEADERS = $(gst_headers)
203 nodist_libgstreamer_@GST_MAJORMINOR@include_HEADERS = \
204         $(built_header_configure) $(built_header_make)
205
206 noinst_HEADERS =                \
207         gettext.h               \
208         gst-i18n-lib.h          \
209         gst-i18n-app.h          \
210         gst_private.h           \
211         gstatomic_impl.h        \
212         gstdata_private.h       \
213         gstarch.h               \
214         cothreads.h             
215
216 if GST_DISABLE_OMEGA_COTHREADS
217 #libcothreads_la_SOURCES =
218 #libcothreads_la_CFLAGS =
219 else
220 libcothreads_la_SOURCES = cothreads.c
221 libcothreads_la_CFLAGS = $(libgstreamer_@GST_MAJORMINOR@_la_CFLAGS) 
222 endif
223
224
225 gstmarshal.h: gstmarshal.list
226         glib-genmarshal --header --prefix=gst_marshal $^ > gstmarshal.h.tmp
227         mv gstmarshal.h.tmp gstmarshal.h
228
229 gstmarshal.c: gstmarshal.list
230         echo "#include \"gst_private.h\"" > gstmarshal.c.tmp
231         echo "#include \"glib-object.h\"" >> gstmarshal.c.tmp
232         echo "#include \"gstmarshal.h\"" >> gstmarshal.c.tmp
233         glib-genmarshal --body --prefix=gst_marshal $^ >> gstmarshal.c.tmp
234         mv gstmarshal.c.tmp gstmarshal.c
235
236 gstenumtypes.h: $(gst_headers)
237         glib-mkenums \
238         --fhead "#ifndef __GST_ENUM_TYPES_H__\n#define __GST_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
239         --fprod "/* enumerations from \"@filename@\" */\n" \
240         --vhead "GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n"         \
241         --ftail "G_END_DECLS\n\n#endif /* __GST_ENUM_TYPES_H__ */" \
242         $^ > gstenumtypes.h
243
244 gstenumtypes.c: $(gst_headers)
245         glib-mkenums \
246         --fhead "#include \"gst_private.h\"\n#include <gst/gst.h>" \
247         --fprod "\n/* enumerations from \"@filename@\" */" \
248         --vhead "GType\n@enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G@Type@Value values[] = {"     \
249         --vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
250         --vtail "      { 0, NULL, NULL }\n    };\n    etype = g_@type@_register_static (\"@EnumName@\", values);\n  }\n  return etype;\n}\n" \
251         $^ > gstenumtypes.c
252
253 noinst_DATA = $(as_libtool_noinst_DATA_files)
254
255 EXTRA_DIST = ROADMAP $(as_libtool_EXTRA_DIST)
256
257 install-data-local: as-libtool-install-data-local
258
259 uninstall-local: as-libtool-uninstall-local
260
261 include $(top_srcdir)/common/as-libtool.mak
262