libs: fix API export/import and 'inconsistent linkage' on MSVC
[platform/upstream/gstreamer.git] / gst-libs / gst / audio / Makefile.am
1 # variables used for enum/marshal generation
2 ORC_SOURCE=gstaudiopack
3 include $(top_srcdir)/common/orc.mak
4
5 glib_enum_headers=              \
6         audio.h                 \
7         audio-format.h                  \
8         audio-channels.h                        \
9         audio-channel-mixer.h                   \
10         audio-converter.h       \
11         audio-info.h                    \
12         audio-quantize.h                        \
13         audio-resampler.h                       \
14         gstaudioringbuffer.h                    \
15         gstaudiobasesrc.h                       \
16         gstaudiocdsrc.h                         \
17         gstaudiobasesink.h
18
19 glib_enum_define = GST_AUDIO
20 glib_gen_prefix = gst_audio
21 glib_gen_basename = audio
22 glib_gen_decl_banner=GST_AUDIO_API
23 glib_gen_decl_include=\#include <gst/audio/audio-prelude.h>
24
25 built_sources = audio-enumtypes.c
26 built_headers = audio-enumtypes.h
27 BUILT_SOURCES += $(built_sources) $(built_headers)
28
29 lib_LTLIBRARIES = \
30         libgstaudio-@GST_API_VERSION@.la
31
32 CLEANFILES = $(BUILT_SOURCES)
33
34 EXTRA_DIST += dbesi0.c
35
36 libgstaudio_@GST_API_VERSION@_la_SOURCES = \
37         audio.c \
38         audio-buffer.c \
39         audio-format.c \
40         audio-channels.c \
41         audio-channel-mixer.c \
42         audio-converter.c \
43         audio-info.c \
44         audio-quantize.c \
45         audio-resampler.c \
46         gstaudioaggregator.c \
47         gstaudioringbuffer.c \
48         gstaudioclock.c \
49         gstaudiocdsrc.c \
50         gstaudiodecoder.c \
51         gstaudioencoder.c \
52         gstaudiobasesink.c \
53         gstaudiobasesrc.c \
54         gstaudiofilter.c \
55         gstaudiometa.c \
56         gstaudiosink.c \
57         gstaudiosrc.c \
58         gstaudioutilsprivate.c \
59         streamvolume.c \
60         gstaudioiec61937.c \
61         gstaudiostreamalign.c
62
63 nodist_libgstaudio_@GST_API_VERSION@_la_SOURCES = $(BUILT_SOURCES)
64
65 libgstaudio_@GST_API_VERSION@includedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/audio
66 libgstaudio_@GST_API_VERSION@include_HEADERS = \
67         audio.h \
68         audio-prelude.h \
69         audio-format.h \
70         audio-buffer.h \
71         audio-channels.h \
72         audio-channel-mixer.h \
73         audio-converter.h \
74         audio-info.h \
75         audio-quantize.h \
76         audio-resampler.h \
77         gstaudioaggregator.h \
78         gstaudioringbuffer.h \
79         gstaudioclock.h \
80         gstaudiofilter.h \
81         gstaudiocdsrc.h \
82         gstaudiodecoder.h \
83         gstaudioencoder.h \
84         gstaudiobasesink.h \
85         gstaudiobasesrc.h \
86         gstaudiometa.h \
87         gstaudiosink.h \
88         gstaudiosrc.h \
89         streamvolume.h \
90         gstaudioiec61937.h \
91         gstaudiostreamalign.h
92
93 nodist_libgstaudio_@GST_API_VERSION@include_HEADERS = \
94         audio-enumtypes.h
95
96 noinst_HEADERS = \
97         gstaudioutilsprivate.h          \
98         audio-resampler-private.h       \
99         audio-resampler-macros.h        \
100         audio-resampler-x86.h           \
101         audio-resampler-x86-sse.h       \
102         audio-resampler-x86-sse2.h      \
103         audio-resampler-x86-sse41.h     \
104         audio-resampler-neon.h
105
106 libgstaudio_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) \
107                 $(ORC_CFLAGS) -DBUILDING_GST_AUDIO
108 libgstaudio_@GST_API_VERSION@_la_LIBADD = \
109   $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_API_VERSION@.la \
110   $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM) $(ORC_LIBS)
111 libgstaudio_@GST_API_VERSION@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
112
113
114 # Arch-specific bits
115
116 noinst_LTLIBRARIES =
117
118 if HAVE_X86
119 # Don't use full GST_LT_LDFLAGS in LDFLAGS because we get things like
120 # -version-info that cause a warning on private libs
121
122 noinst_LTLIBRARIES += libaudio_resampler_sse.la
123 libaudio_resampler_sse_la_SOURCES = audio-resampler-x86-sse.c
124 libaudio_resampler_sse_la_CFLAGS = \
125         $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) \
126         $(SSE_CFLAGS)
127 libaudio_resampler_sse_la_LDFLAGS = \
128         $(GST_LIB_LDFLAGS) \
129         $(GST_ALL_LDFLAGS)
130 libgstaudio_@GST_API_VERSION@_la_LIBADD += libaudio_resampler_sse.la
131
132 noinst_LTLIBRARIES += libaudio_resampler_sse2.la
133 libaudio_resampler_sse2_la_SOURCES = audio-resampler-x86-sse2.c
134 libaudio_resampler_sse2_la_CFLAGS = \
135         $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) \
136         $(SSE2_CFLAGS)
137 libaudio_resampler_sse2_la_LDFLAGS = \
138         $(GST_LIB_LDFLAGS) \
139         $(GST_ALL_LDFLAGS)
140 libgstaudio_@GST_API_VERSION@_la_LIBADD += libaudio_resampler_sse2.la
141
142 noinst_LTLIBRARIES += libaudio_resampler_sse41.la
143 libaudio_resampler_sse41_la_SOURCES = audio-resampler-x86-sse41.c
144 libaudio_resampler_sse41_la_CFLAGS = \
145         $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) \
146         $(SSE41_CFLAGS)
147 libaudio_resampler_sse41_la_LDFLAGS = \
148         $(GST_LIB_LDFLAGS) \
149         $(GST_ALL_LDFLAGS)
150 libgstaudio_@GST_API_VERSION@_la_LIBADD += libaudio_resampler_sse41.la
151
152 endif
153
154
155 # Introspection
156
157 include $(top_srcdir)/common/gst-glib-gen.mak
158
159 if HAVE_INTROSPECTION
160 BUILT_GIRSOURCES = GstAudio-@GST_API_VERSION@.gir
161
162 gir_headers=$(patsubst %,$(srcdir)/%, $(libgstaudio_@GST_API_VERSION@include_HEADERS))
163 gir_headers+=$(patsubst %,$(builddir)/%, $(built_headers))
164 gir_sources=$(patsubst %,$(srcdir)/%, $(libgstaudio_@GST_API_VERSION@_la_SOURCES))
165 gir_sources+=$(patsubst %,$(builddir)/%, $(built_sources))
166
167 GstAudio-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_API_VERSION@.la
168         $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
169                 GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_DISABLE=yes \
170                 CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
171                 $(INTROSPECTION_SCANNER) -v --namespace GstAudio \
172                 --nsversion=@GST_API_VERSION@ \
173                 --warn-all \
174                 --identifier-prefix=Gst \
175                 --symbol-prefix=gst \
176                 -I$(top_srcdir)/gst-libs \
177                 -I$(top_builddir)/gst-libs \
178                 --c-include "gst/audio/audio.h" \
179                 --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
180                 --add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
181                 --add-include-path="$(top_builddir)/gst-libs/gst/tag/" \
182                 --library=libgstaudio-@GST_API_VERSION@.la \
183                 --library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \
184                 --library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \
185                 --library-path="$(top_builddir)/gst-libs/gst/tag/" \
186                 --include=Gst-@GST_API_VERSION@ \
187                 --include=GstBase-@GST_API_VERSION@ \
188                 --include=GstTag-@GST_API_VERSION@ \
189                 --libtool="${LIBTOOL}" \
190                 --pkg gstreamer-@GST_API_VERSION@ \
191                 --pkg gstreamer-base-@GST_API_VERSION@ \
192                 --pkg-export gstreamer-audio-@GST_API_VERSION@ \
193                 --add-init-section="$(INTROSPECTION_INIT)" \
194                 --output $@ \
195                 $(gir_headers) \
196                 $(gir_sources)
197
198 # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
199 # install anything - we need to install inside our prefix.
200 girdir = $(datadir)/gir-1.0
201 gir_DATA = $(BUILT_GIRSOURCES)
202
203 typelibsdir = $(libdir)/girepository-1.0/
204
205 typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
206
207 %.typelib: %.gir $(INTROSPECTION_COMPILER)
208         $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
209                 $(INTROSPECTION_COMPILER) \
210                 --includedir=$(srcdir) \
211                 --includedir=$(builddir) \
212                 --includedir="$(top_builddir)/gst-libs/gst/tag/" \
213                 --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
214                 --includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
215                 $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
216
217 CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
218 endif