Makefile.am 9.39 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)
zorglub's avatar
zorglub committed
103
104
105
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`
106

107
libvlc_la_SOURCES = $(SOURCES_libvlc)
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
108
libvlc_la_LIBADD = $(INCLUDED_LIBINTL)
zorglub's avatar
zorglub committed
109
110
111
112
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` \
113
	-no-undefined -export-symbols $(srcdir)/libvlc.sym -version-info 1:0:0
114
libvlc_la_DEPENDENCIES = libvlc.sym
115

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

123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
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
143
if USE_LIBTOOL
144
lib_LTLIBRARIES = libvlc.la libvlc-control.la
145
else
146
lib_LIBRARIES = libvlc.a
147
148
endif

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

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

158
159
libvlc.dll.a libvlc.def: libvlc$(LIBEXT)
	$(DLLTOOL) -z libvlc.def -l libvlc.dll.a -D $< $(libvlc_a_OBJECTS)
160

161
libvlc$(LIBEXT): $(libvlc_a_OBJECTS)
162
163
	@ldfl="`$(VLC_CONFIG) --libs plugin libvlc pic` $(INCLUDED_LIBINTL)" ; \
	case `$(VLC_CONFIG) --linkage libvlc` in \
164
165
166
167
	  c++)  ld="$(CXXLINK)" ;; \
	  objc) ld="$(OBJCLINK)" ;; \
	  c|*)  ld="$(LINK)" ;; \
	esac ; \
168
	echo $$ld $(libvlc_a_OBJECTS) $$ldfl; \
169
	$$ld $(libvlc_a_OBJECTS) \
170
		$$ldfl
171
172
173
174
# 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
175
# Cygwin libtool work-around
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
176
	@if test -f "$@.exe"; then mv -f "$@.exe" "$@"; fi
177
endif
178
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

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
211
	libvlc-common.c \
212
	libvlc.h \
213
	libvlc-module.c \
zorglub's avatar
zorglub committed
214
	interface/interface.h \
215
216
217
	interface/interface.c \
	interface/intf_eject.c \
	interface/interaction.c \
218
	playlist/playlist_internal.h \
219
220
221
	playlist/thread.c \
	playlist/control.c \
	playlist/engine.c \
222
223
	playlist/sort.c \
	playlist/loadsave.c \
224
	playlist/tree.c \
225
	playlist/item.c \
226
	playlist/search.c \
227
	playlist/services_discovery.c \
228
	input/item.c \
229
230
231
232
233
234
235
	input/access.c \
	input/clock.c \
	input/control.c \
	input/decoder.c \
	input/demux.c \
	input/es_out.c \
	input/input.c \
236
	input/meta.c \
237
238
239
240
241
242
243
244
245
246
247
248
249
	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
250
	audio_output/aout_internal.h \
251
252
253
	audio_output/common.c \
	audio_output/dec.c \
	audio_output/filters.c \
254
	audio_output/input.c \
255
256
257
258
	audio_output/mixer.c \
	audio_output/output.c \
	audio_output/intf.c \
	stream_output/stream_output.c \
zorglub's avatar
zorglub committed
259
	stream_output/stream_output.h \
260
	stream_output/announce.c \
261
	stream_output/profiles.c \
262
	stream_output/sap.c \
263
	stream_output/sdp.c \
264
265
266
267
268
269
270
	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 \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
277
	network/poll.c \
278
279
280
281
282
	text/charset.c \
	text/strings.c \
	text/unicode.c \
	text/iso_lang.c \
	text/iso-639_def.h \
283
284
285
	misc/md5.c \
	misc/mtime.c \
	misc/block.c \
zorglub's avatar
zorglub committed
286
	misc/modules.h \
287
288
289
290
	misc/modules.c \
	misc/threads.c \
	misc/stats.c \
	misc/cpu.c \
zorglub's avatar
zorglub committed
291
	misc/configuration.h \
292
	misc/configuration.c \
293
	misc/configuration_chain.c \
294
295
296
	misc/image.c \
	misc/messages.c \
	misc/objects.c \
zorglub's avatar
zorglub committed
297
	misc/variables.h \
298
299
300
	misc/variables.c \
	misc/error.c \
	misc/update.c \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
301
	input/vlm.c \
302
	misc/xml.c \
303
	misc/devices.c \
304
305
306
307
308
309
310
311
312
313
314
315
	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)

316
SOURCES_libvlc_control = \
zorglub's avatar
zorglub committed
317
	control/libvlc_internal.h \
318
319
320
321
322
323
324
	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
325
	control/mediacontrol_internal.h \
326
327
328
329
	control/mediacontrol_core.c \
	control/mediacontrol_util.c \
	control/mediacontrol_audio_video.c

330
if !USE_LIBTOOL
331
if !HAVE_WIN32
332
nodist_libvlc_a_SOURCES = misc/version.c
333
CLEANFILES += misc/version.c
334
335
336

misc/version.c: FORCE
	$(TOOLBOX) --update-version
337
338
endif

339
# Install shared libvlc
340
341
342
343
344
345
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)"
346
endif
347
348
349
350

###############################################################################
# Stamp rules
###############################################################################
351
352

if !USE_LIBTOOL
353
if !HAVE_WIN32
354
355
356
357
358
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

359
360
361
362
CLEANFILES += stamp-api
endif
endif

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

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

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

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

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

385
FORCE: