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

5
6
AUTOMAKE_OPTIONS = subdir-objects

7
8
9
10
11
NULL =
SUBDIRS =

EXTRA_DIST = extras/COPYING misc/modules_builtin.h.in

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

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
39
40
41
42
43
44
45
46
47
	../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 \
48
	../include/vlc_streaming.h \
zorglub's avatar
zorglub committed
49
50
	../include/vlc_variables.h \
	../include/vlc_aout.h \
51
	../include/vlc_access.h \
52
	../include/vlc_arrays.h \
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
	../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
68
	../include/vlc_devices.h \
69
70
71
	../include/vlc_image.h \
	../include/vlc_input.h \
	../include/vlc_interface.h \
72
	../include/vlc_intf_strings.h \
73
74
75
76
77
78
79
	../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 \
80
	../include/vlc_strings.h \
81
82
83
84
	../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
85
	../include/vlc_url.h \
zorglub's avatar
zorglub committed
86
	../include/vlc_vout.h \
87
88
89
	../include/vlc_vlm.h \
	../include/vlc_vod.h \
	../include/vlc_xml.h \
zorglub's avatar
zorglub committed
90
	../include/vlc_vout_synchro.h \
91
92
	$(NULL)

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

misc/modules.c: misc/modules_builtin.h

99
100
101
102
103
104
105
106
107
###############################################################################
# Building builtin modules
###############################################################################
#
# As long as we use builtins with a shared libvlc, we must build them before
# we build libvlc. Maybe one day, libvlc will handle multiple modules per
# shared object, which will make builtins fairly redumdant. Until then, we
# need this workaround.

108

109
if BUILD_SHARED
110
stamp-builtins: Makefile ../vlc-config ../config.status
111
	@for c in `$(VLC_CONFIG) --libs builtin`; do \
112
113
114
115
		case $$c in \
			../modules/*.a) echo $$c ;; \
		esac ; \
	done | \
116
	sed -e 's,^\(.*\)/\([^/]*\)\.a$$,cd \1 \&\& $(MAKE) \2,g' | \
117
	while read cmd; do echo $$cmd.a; eval "($$cmd.a)" || exit $$? ; done
118
	touch $@
119
endif
120

121
122
123
124
###############################################################################
# Building libvlc
###############################################################################

125
libvlc_a_SOURCES = $(SOURCES_libvlc) $(SOURCES_libvlc_control)
126
nodist_libvlc_a_SOURCES = misc/version.c
zorglub's avatar
zorglub committed
127
128
129
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`
130

131
libvlc_la_SOURCES = $(SOURCES_libvlc)
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
132
libvlc_la_LIBADD = $(INCLUDED_LIBINTL)
zorglub's avatar
zorglub committed
133
134
135
136
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` \
137
	-no-undefined -export-symbols libvlc.sym -version-info 1:0:0
138
libvlc_la_DEPENDENCIES = libvlc.sym
139

140
libvlc_control_la_SOURCES = $(SOURCES_libvlc_control)
141
libvlc_control_la_LIBADD = libvlc.la
zorglub's avatar
zorglub committed
142
libvlc_control_la_CFLAGS = `$(VLC_CONFIG) --cflags libvlc`
143
144
145
libvlc_control_la_LDFLAGS = \
	-no-undefined -export-symbols-regex '_?(libvlc|mediacontrol)_.*' \
	-version-info 0:0:0
146

147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
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
167
if USE_LIBTOOL
168
lib_LTLIBRARIES = libvlc.la libvlc-control.la
169
else
170
lib_LIBRARIES = libvlc.a
171
172
endif

Sam Hocevar's avatar
Sam Hocevar committed
173
174
175
176
177
178
if HAVE_WIN32
pic =
else
pic = pic
endif

179
if HAVE_WIN32
180
if BUILD_SHARED
181
DATA_noinst_libvlc = libvlc$(LIBEXT) libvlc$(LIBEXT).a
182
183
endif

184
libvlc.dll.a: libvlc$(LIBEXT)
185
	$(DLLTOOL) --export-all-symbols -l $@ -D $< $(libvlc_a_OBJECTS)
186

187
libvlc$(LIBEXT): $(OBJECTS_libvlc_so) stamp-builtins
188
	@ldfl="`$(VLC_CONFIG) --libs plugin vlc builtin pic` $(INCLUDED_LIBINTL)" ; \
189
	case `$(VLC_CONFIG) --linkage vlc builtin` in \
190
191
192
193
	  c++)  ld="$(CXXLINK)" ;; \
	  objc) ld="$(OBJCLINK)" ;; \
	  c|*)  ld="$(LINK)" ;; \
	esac ; \
194
	echo $$ld $(OBJECTS_libvlc_so) $(LDFLAGS_libvlc_so) $$ldfl; \
195
	$$ld $(libvlc_a_OBJECTS) \
196
		$$ldfl
197
198
199
200
# 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
201
# Cygwin libtool work-around
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
202
	@if test -f "$@.exe"; then mv -f "$@.exe" "$@"; fi
203
endif
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236

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
237
	libvlc-common.c \
238
	libvlc.h \
239
	libvlc-module.c \
zorglub's avatar
zorglub committed
240
	interface/interface.h \
241
242
243
	interface/interface.c \
	interface/intf_eject.c \
	interface/interaction.c \
244
	playlist/playlist_internal.h \
245
246
247
	playlist/thread.c \
	playlist/control.c \
	playlist/engine.c \
248
249
	playlist/sort.c \
	playlist/loadsave.c \
250
	playlist/tree.c \
251
	playlist/item.c \
252
	playlist/search.c \
253
	playlist/services_discovery.c \
254
	input/item.c \
255
256
257
258
259
260
261
	input/access.c \
	input/clock.c \
	input/control.c \
	input/decoder.c \
	input/demux.c \
	input/es_out.c \
	input/input.c \
262
	input/meta.c \
263
264
265
266
267
268
269
270
271
272
273
274
275
	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
276
	audio_output/aout_internal.h \
277
278
279
	audio_output/common.c \
	audio_output/dec.c \
	audio_output/filters.c \
280
	audio_output/input.c \
281
282
283
284
	audio_output/mixer.c \
	audio_output/output.c \
	audio_output/intf.c \
	stream_output/stream_output.c \
zorglub's avatar
zorglub committed
285
	stream_output/stream_output.h \
286
	stream_output/announce.c \
287
	stream_output/profiles.c \
288
289
290
291
292
293
294
295
	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 \
296
	network/error.c \
297
298
299
300
301
	network/tcp.c \
	network/udp.c \
	network/httpd.c \
	network/rootwrap.c \
	network/tls.c \
302
303
304
305
306
	text/charset.c \
	text/strings.c \
	text/unicode.c \
	text/iso_lang.c \
	text/iso-639_def.h \
307
308
309
	misc/md5.c \
	misc/mtime.c \
	misc/block.c \
zorglub's avatar
zorglub committed
310
	misc/modules.h \
311
312
313
314
	misc/modules.c \
	misc/threads.c \
	misc/stats.c \
	misc/cpu.c \
zorglub's avatar
zorglub committed
315
	misc/configuration.h \
316
	misc/configuration.c \
317
	misc/configuration_chain.c \
318
319
320
	misc/image.c \
	misc/messages.c \
	misc/objects.c \
zorglub's avatar
zorglub committed
321
	misc/variables.h \
322
323
324
	misc/variables.c \
	misc/error.c \
	misc/update.c \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
325
	input/vlm.c \
326
	misc/xml.c \
zorglub's avatar
zorglub committed
327
	misc/dict.c \
328
	misc/devices.c \
329
330
331
332
333
334
335
336
337
338
339
340
	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)

341
SOURCES_libvlc_control = \
zorglub's avatar
zorglub committed
342
	control/libvlc_internal.h \
343
344
345
346
347
348
349
	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
350
	control/mediacontrol_internal.h \
351
352
353
354
	control/mediacontrol_core.c \
	control/mediacontrol_util.c \
	control/mediacontrol_audio_video.c

355
if !USE_LIBTOOL
356
if !BUILD_SHARED
357
CLEANFILES += misc/version.c
358
359
endif

360
# Install shared libvlc
361
362
363
364
365
366
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)"
367
endif
368

369
370
371
misc/version.c: FORCE
	$(TOOLBOX) --update-version

372
373
374
375
376
377
378
379
###############################################################################
# Stamp rules
###############################################################################
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

380
381
382
383
###############################################################################
# Unit/regression test
###############################################################################
if USE_LIBTOOL
384
check_PROGRAMS = test_i18n_atof test_url
385
386
TESTS = $(check_PROGRAMS)

zorglub's avatar
zorglub committed
387
CFLAGS_tests = `$(VLC_CONFIG) --cflags libvlc`
388
389
390
391

test_i18n_atof_SOURCES = test/i18n_atof.c
test_i18n_atof_LDADD = libvlc.la
test_i18n_atof_CFLAGS = $(CFLAGS_tests)
392
393
394
395

test_url_SOURCES = test/url.c
test_url_LDADD = libvlc.la
test_url_CFLAGS = $(CFLAGS_tests)
396
397
endif

398
FORCE: