Makefile.am 9.42 KB
Newer Older
1
2
3
4
###############################################################################
# Automake targets and declarations
###############################################################################

5
6
AUTOMAKE_OPTIONS = subdir-objects

7
8
9
NULL =
SUBDIRS =

Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
10
EXTRA_DIST = extras/COPYING misc/modules_builtin.h.in libvlc.sym
11

12
BUILT_SOURCES = $(CLEANFILES)
13
CLEANFILES = misc/modules_builtin.h
14
MOSTLYCLEANFILES = $(DATA_noinst_libvlc)
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

TOOLBOX = srcdir=$(top_srcdir) builddir=$(top_builddir) $(top_srcdir)/toolbox

###############################################################################
# Headers
###############################################################################

pkgincludedir = $(includedir)/vlc

dist_pkginclude_HEADERS = \
	../include/vlc/vlc.h \
	../include/vlc/libvlc.h \
	../include/vlc/mediacontrol.h \
	../include/vlc/mediacontrol_structures.h \
	$(NULL)

noinst_HEADERS = $(HEADERS_include)
noinst_DATA = $(DATA_noinst_libvlc)

HEADERS_include = \
	../include/iso_lang.h \
	../include/main.h \
	../include/mmx.h \
zorglub's avatar
zorglub committed
38
39
40
41
42
43
44
45
46
	../include/vlc_modules.h \
	../include/vlc_modules_macros.h \
	../include/vlc_os_specific.h \
	../include/vlc_mtime.h \
	../include/vlc_network.h \
	../include/vlc_codecs.h \
	../include/vlc_configuration.h \
	../include/vlc_charset.h \
	../include/vlc_sout.h \
47
	../include/vlc_streaming.h \
zorglub's avatar
zorglub committed
48
49
	../include/vlc_variables.h \
	../include/vlc_aout.h \
50
	../include/vlc_access.h \
51
	../include/vlc_arrays.h \
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
	../include/vlc_acl.h \
	../include/vlc_bits.h \
	../include/vlc_block.h \
	../include/vlc_block_helper.h \
	../include/vlc_codec.h \
	../include/vlc_common.h \
	../include/vlc_config.h \
	../include/vlc_demux.h \
	../include/vlc_es.h \
	../include/vlc_es_out.h \
	../include/vlc_filter.h \
	../include/vlc_config_cat.h \
	../include/vlc_httpd.h \
	../include/vlc_tls.h \
	../include/vlc_md5.h \
zorglub's avatar
zorglub committed
67
	../include/vlc_devices.h \
68
69
70
	../include/vlc_image.h \
	../include/vlc_input.h \
	../include/vlc_interface.h \
71
	../include/vlc_intf_strings.h \
72
73
74
75
76
77
78
	../include/vlc_keys.h \
	../include/vlc_messages.h \
	../include/vlc_meta.h \
	../include/vlc_objects.h \
	../include/vlc_osd.h \
	../include/vlc_playlist.h \
	../include/vlc_stream.h \
79
	../include/vlc_strings.h \
80
81
82
83
	../include/vlc_symbols.h \
	../include/vlc_threads_funcs.h \
	../include/vlc_threads.h \
	../include/vlc_update.h \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
84
	../include/vlc_url.h \
zorglub's avatar
zorglub committed
85
	../include/vlc_vout.h \
86
87
88
	../include/vlc_vlm.h \
	../include/vlc_vod.h \
	../include/vlc_xml.h \
zorglub's avatar
zorglub committed
89
	../include/vlc_vout_synchro.h \
90
91
	$(NULL)

92
misc/modules_builtin.h: misc/modules_builtin.h.in
93
94
95
96
97
98
99
100
101
	$(TOOLBOX) --update-includes
	touch $@

misc/modules.c: misc/modules_builtin.h

###############################################################################
# Building libvlc
###############################################################################

102
libvlc_a_SOURCES = $(SOURCES_libvlc) $(SOURCES_libvlc_control)
103
nodist_libvlc_a_SOURCES = misc/version.c
zorglub's avatar
zorglub committed
104
105
106
libvlc_a_CFLAGS = `$(VLC_CONFIG) --cflags libvlc pic` -DUSE_BUILTINS
libvlc_a_CXXFLAGS = `$(VLC_CONFIG) --cxxflags libvlc pic`
libvlc_a_OBJCFLAGS = `$(VLC_CONFIG) --objcflags libvlc pic`
107

108
libvlc_la_SOURCES = $(SOURCES_libvlc)
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
109
libvlc_la_LIBADD = $(INCLUDED_LIBINTL)
zorglub's avatar
zorglub committed
110
111
112
113
libvlc_la_CFLAGS = `$(VLC_CONFIG) --cflags libvlc`
libvlc_la_CXXFLAGS = `$(VLC_CONFIG) --cxxflags libvlc`
libvlc_la_OBJCFLAGS = `$(VLC_CONFIG) --objcflags libvlc`
libvlc_la_LDFLAGS = `$(VLC_CONFIG) --libs libvlc` \
114
	-no-undefined -export-symbols $(srcdir)/libvlc.sym -version-info 1:0:0
115
libvlc_la_DEPENDENCIES = libvlc.sym
116

117
libvlc_control_la_SOURCES = $(SOURCES_libvlc_control)
118
libvlc_control_la_LIBADD = libvlc.la
zorglub's avatar
zorglub committed
119
libvlc_control_la_CFLAGS = `$(VLC_CONFIG) --cflags libvlc`
120
121
122
libvlc_control_la_LDFLAGS = \
	-no-undefined -export-symbols-regex '_?(libvlc|mediacontrol)_.*' \
	-version-info 0:0:0
123

124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
if HAVE_BEOS
OPT_SOURCES_libvlc_beos = $(SOURCES_libvlc_beos)
endif
if HAVE_DARWIN
OPT_SOURCES_libvlc_darwin = $(SOURCES_libvlc_darwin)
endif
if HAVE_WIN32
OPT_SOURCES_libvlc_win32 = $(SOURCES_libvlc_win32)
endif
if HAVE_WINCE
OPT_SOURCES_libvlc_win32 = $(SOURCES_libvlc_win32)
endif
if BUILD_DIRENT
OPT_SOURCES_libvlc_dirent = $(SOURCES_libvlc_dirent)
endif
if BUILD_GETOPT
OPT_SOURCES_libvlc_getopt = $(SOURCES_libvlc_getopt)
endif

# Build libvlc as a shared library
144
if USE_LIBTOOL
145
lib_LTLIBRARIES = libvlc.la libvlc-control.la
146
else
147
lib_LIBRARIES = libvlc.a
148
149
endif

Sam Hocevar's avatar
Sam Hocevar committed
150
151
152
153
154
155
if HAVE_WIN32
pic =
else
pic = pic
endif

156
if HAVE_WIN32
157
DATA_noinst_libvlc = libvlc$(LIBEXT) libvlc$(LIBEXT).a
158

159
libvlc.dll.a: libvlc$(LIBEXT)
160
	$(DLLTOOL) --export-all-symbols -l $@ -D $< $(libvlc_a_OBJECTS)
161

162
libvlc$(LIBEXT): $(libvlc_a_OBJECTS)
163
164
	@ldfl="`$(VLC_CONFIG) --libs plugin libvlc pic` $(INCLUDED_LIBINTL)" ; \
	case `$(VLC_CONFIG) --linkage libvlc` in \
165
166
167
168
	  c++)  ld="$(CXXLINK)" ;; \
	  objc) ld="$(OBJCLINK)" ;; \
	  c|*)  ld="$(LINK)" ;; \
	esac ; \
169
	echo $$ld $(libvlc_a_OBJECTS) $$ldfl; \
170
	$$ld $(libvlc_a_OBJECTS) \
171
		$$ldfl
172
173
174
175
# It sucks big time, but we have to do that to link vlc properly
# on non-PIC OSes, otherwise ld will favor builtins-less libvlc.a over
# libvlc$(LIBEXT)
	rm -f libvlc.a
176
# Cygwin libtool work-around
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
177
	@if test -f "$@.exe"; then mv -f "$@.exe" "$@"; fi
178
endif
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211

EXTRA_DIST += \
	$(SOURCES_libvlc_beos) \
	$(SOURCES_libvlc_darwin) \
	$(SOURCES_libvlc_win32) \
	$(SOURCES_libvlc_dirent) \
	$(SOURCES_libvlc_getopt) \
	$(NULL)

SOURCES_libvlc_beos = \
	misc/beos_specific.cpp \
	$(NULL)

SOURCES_libvlc_darwin = \
	misc/darwin_specific.m \
	$(NULL)

SOURCES_libvlc_win32 = \
	misc/win32_specific.c \
	$(NULL)

SOURCES_libvlc_dirent = \
	extras/dirent.c \
	$(NULL)

SOURCES_libvlc_getopt = \
	extras/getopt.c \
	extras/getopt.h \
	extras/getopt1.c \
	$(NULL)

SOURCES_libvlc_common = \
	libvlc.c \
zorglub's avatar
zorglub committed
212
	libvlc-common.c \
213
	libvlc.h \
214
	libvlc-module.c \
zorglub's avatar
zorglub committed
215
	interface/interface.h \
216
217
218
	interface/interface.c \
	interface/intf_eject.c \
	interface/interaction.c \
219
	playlist/playlist_internal.h \
220
221
222
	playlist/thread.c \
	playlist/control.c \
	playlist/engine.c \
223
224
	playlist/sort.c \
	playlist/loadsave.c \
225
	playlist/tree.c \
226
	playlist/item.c \
227
	playlist/search.c \
228
	playlist/services_discovery.c \
229
	input/item.c \
230
231
232
233
234
235
236
	input/access.c \
	input/clock.c \
	input/control.c \
	input/decoder.c \
	input/demux.c \
	input/es_out.c \
	input/input.c \
237
	input/meta.c \
238
239
240
241
242
243
244
245
246
247
248
249
250
	input/input_internal.h \
	input/stream.c \
	input/mem_stream.c \
	input/subtitles.c \
	input/var.c \
	video_output/video_output.c \
	video_output/vout_pictures.c \
	video_output/vout_pictures.h \
	video_output/video_text.c \
	video_output/video_widgets.c \
	video_output/vout_subpictures.c \
	video_output/vout_synchro.c \
	video_output/vout_intf.c \
zorglub's avatar
zorglub committed
251
	audio_output/aout_internal.h \
252
253
254
	audio_output/common.c \
	audio_output/dec.c \
	audio_output/filters.c \
255
	audio_output/input.c \
256
257
258
259
	audio_output/mixer.c \
	audio_output/output.c \
	audio_output/intf.c \
	stream_output/stream_output.c \
zorglub's avatar
zorglub committed
260
	stream_output/stream_output.h \
261
	stream_output/announce.c \
262
	stream_output/profiles.c \
263
264
265
266
267
268
269
270
	stream_output/sap.c \
	osd/osd.c \
	osd/osd_parser.c \
	osd/osd_text.c \
	osd/osd_widgets.c \
	network/acl.c \
	network/getaddrinfo.c \
	network/io.c \
271
	network/error.c \
272
273
274
275
276
	network/tcp.c \
	network/udp.c \
	network/httpd.c \
	network/rootwrap.c \
	network/tls.c \
277
278
279
280
281
	text/charset.c \
	text/strings.c \
	text/unicode.c \
	text/iso_lang.c \
	text/iso-639_def.h \
282
283
284
	misc/md5.c \
	misc/mtime.c \
	misc/block.c \
zorglub's avatar
zorglub committed
285
	misc/modules.h \
286
287
288
289
	misc/modules.c \
	misc/threads.c \
	misc/stats.c \
	misc/cpu.c \
zorglub's avatar
zorglub committed
290
	misc/configuration.h \
291
	misc/configuration.c \
292
	misc/configuration_chain.c \
293
294
295
	misc/image.c \
	misc/messages.c \
	misc/objects.c \
zorglub's avatar
zorglub committed
296
	misc/variables.h \
297
298
299
	misc/variables.c \
	misc/error.c \
	misc/update.c \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
300
	input/vlm.c \
301
	misc/xml.c \
302
	misc/devices.c \
303
304
305
306
307
308
309
310
311
312
313
314
	extras/libc.c \
	$(NULL)

SOURCES_libvlc = \
	$(SOURCES_libvlc_common) \
	$(OPT_SOURCES_libvlc_beos) \
	$(OPT_SOURCES_libvlc_darwin) \
	$(OPT_SOURCES_libvlc_win32) \
	$(OPT_SOURCES_libvlc_dirent) \
	$(OPT_SOURCES_libvlc_getopt) \
	$(NULL)

315
SOURCES_libvlc_control = \
zorglub's avatar
zorglub committed
316
	control/libvlc_internal.h \
317
318
319
320
321
322
323
	control/core.c \
	control/log.c \
	control/playlist.c \
	control/vlm.c \
	control/input.c \
	control/video.c \
	control/audio.c \
zorglub's avatar
zorglub committed
324
	control/mediacontrol_internal.h \
325
326
327
328
	control/mediacontrol_core.c \
	control/mediacontrol_util.c \
	control/mediacontrol_audio_video.c

329
if !USE_LIBTOOL
330
if !HAVE_WIN32
331
CLEANFILES += misc/version.c
332
333
endif

334
# Install shared libvlc
335
336
337
338
339
340
install-exec-local:
	test -z "$(DATA_noinst_libvlc)" || $(INSTALL_PROGRAM) "$(DATA_noinst_libvlc)" "$(DESTDIR)$(libdir)"

# the opposite of install-{data,exec}-local
uninstall-local:
	test -z "$(DATA_noinst_libvlc)" || rm -f "$(DESTDIR)$(libdir)/$(DATA_noinst_libvlc)"
341
endif
342

343
344
345
misc/version.c: FORCE
	$(TOOLBOX) --update-version

346
347
348
###############################################################################
# Stamp rules
###############################################################################
349
350

if !USE_LIBTOOL
351
if !HAVE_WIN32
352
353
354
355
356
stamp-api: Makefile.in $(HEADERS_include) ../vlc-api.pl
	( cd $(srcdir) && cat $(HEADERS_include) ) | \
	  top_srcdir="$(top_srcdir)" perl $(top_srcdir)/vlc-api.pl
	touch stamp-api

357
358
359
360
CLEANFILES += stamp-api
endif
endif

361
362
363
364
###############################################################################
# Unit/regression test
###############################################################################
if USE_LIBTOOL
365
check_PROGRAMS = test_i18n_atof test_url test_utf8
366
TESTS = $(check_PROGRAMS)
367
endif
368

zorglub's avatar
zorglub committed
369
CFLAGS_tests = `$(VLC_CONFIG) --cflags libvlc`
370
371
372
373

test_i18n_atof_SOURCES = test/i18n_atof.c
test_i18n_atof_LDADD = libvlc.la
test_i18n_atof_CFLAGS = $(CFLAGS_tests)
374
375
376
377

test_url_SOURCES = test/url.c
test_url_LDADD = libvlc.la
test_url_CFLAGS = $(CFLAGS_tests)
378
379
380
381

test_utf8_SOURCES = test/utf8.c
test_utf8_LDADD = libvlc.la
test_utf8_CFLAGS = $(CFLAGS_tests)
382

383
FORCE: