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

5 6
AUTOMAKE_OPTIONS = subdir-objects

7
NULL =
8
EXTRA_DIST = \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
9
	vlc-plugin.pc.in \
10
	libvlccore.sym \
11
	revision.txt
12

13
BUILT_SOURCES = $(nodist_pluginsinclude_HEADERS)
Christophe Mutricy's avatar
Christophe Mutricy committed
14
CLEANFILES = $(BUILT_SOURCES)
15

16
SUFFIXES = .pc.in .pc .rc.in .rc
17

18 19 20 21
###############################################################################
# Headers
###############################################################################

22
pluginsincludedir = $(pkgincludedir)/plugins
23

24
pluginsinclude_HEADERS = \
25
	../include/vlc_access.h \
26
	../include/vlc_aout.h \
Rafaël Carré's avatar
Rafaël Carré committed
27
	../include/vlc_aout_intf.h \
28
	../include/vlc_aout_volume.h \
29
	../include/vlc_arrays.h \
Pierre Ynard's avatar
Pierre Ynard committed
30
	../include/vlc_art_finder.h \
31
	../include/vlc_atomic.h \
32
	../include/vlc_avcodec.h \
33 34 35 36 37
	../include/vlc_bits.h \
	../include/vlc_block.h \
	../include/vlc_block_helper.h \
	../include/vlc_charset.h \
	../include/vlc_codec.h \
38 39
	../include/vlc_common.h \
	../include/vlc_config.h \
40
	../include/vlc_config_cat.h \
41
	../include/vlc_configuration.h \
42
	../include/vlc_cpu.h \
43
	../include/vlc_dialog.h \
44
	../include/vlc_demux.h \
45
	../include/vlc_epg.h \
46
	../include/vlc_es.h \
47 48
	../include/vlc_es_out.h \
	../include/vlc_events.h \
49
	../include/vlc_filter.h \
50
	../include/vlc_fourcc.h \
51
	../include/vlc_fs.h \
52
	../include/vlc_gcrypt.h \
53
	../include/vlc_opengl.h \
54
	../include/vlc_http.h \
55
	../include/vlc_httpd.h \
56
	../include/vlc_image.h \
57
	../include/vlc_inhibit.h \
58
	../include/vlc_input.h \
59
	../include/vlc_input_item.h \
Rafaël Carré's avatar
Rafaël Carré committed
60
	../include/vlc_keys.h \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
61
	../include/vlc_main.h \
62
	../include/vlc_md5.h \
63
	../include/vlc_messages.h \
64
	../include/vlc_meta.h \
jetru's avatar
jetru committed
65
	../include/vlc_media_library.h \
66
	../include/vlc_mime.h \
67
	../include/vlc_modules.h \
Pierre Ynard's avatar
Pierre Ynard committed
68
	../include/vlc_mouse.h \
69
	../include/vlc_mtime.h \
70
	../include/vlc_network.h \
71
	../include/vlc_objects.h \
72
	../include/vlc_picture.h \
73 74
	../include/vlc_picture_fifo.h \
	../include/vlc_picture_pool.h \
75
	../include/vlc_playlist.h \
76
	../include/vlc_plugin.h \
77
	../include/vlc_probe.h \
78 79
	../include/vlc_rand.h \
	../include/vlc_services_discovery.h \
jetru's avatar
jetru committed
80
	../include/vlc_sql.h \
81
	../include/vlc_sout.h \
82
	../include/vlc_spu.h \
83 84
	../include/vlc_stream.h \
	../include/vlc_strings.h \
85
	../include/vlc_subpicture.h \
86
	../include/vlc_text_style.h \
87
	../include/vlc_threads.h \
88
	../include/vlc_tls.h \
89
	../include/vlc_url.h \
90 91
	../include/vlc_variables.h \
	../include/vlc_vlm.h \
92
	../include/vlc_video_splitter.h \
93
	../include/vlc_vout.h \
94
	../include/vlc_vout_display.h \
95
	../include/vlc_vout_osd.h \
96
	../include/vlc_vout_window.h \
97
	../include/vlc_xml.h \
98
	../include/vlc_xlib.h \
99
	$(NULL)
100
nodist_pluginsinclude_HEADERS = ../include/vlc_about.h
101

102
noinst_HEADERS = \
103
	../include/vlc_codec_synchro.h \
104
	../include/vlc_codecs.h \
Pierre Ynard's avatar
Pierre Ynard committed
105
	../include/vlc_extensions.h \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
106
	../include/vlc_fixups.h \
107
	../include/vlc_interface.h \
108
	../include/vlc_intf_strings.h \
109
	../include/vlc_iso_lang.h \
Pierre Ynard's avatar
Pierre Ynard committed
110
	../include/vlc_memory.h \
111
	../include/vlc_osd.h \
Rémi Denis-Courmont's avatar
Tabs  
Rémi Denis-Courmont committed
112
	../include/vlc_pgpkey.h \
113 114
	../include/vlc_update.h \
	../include/vlc_vod.h \
Pierre Ynard's avatar
Pierre Ynard committed
115
	../include/vlc_vout_wrapper.h \
Pierre Ynard's avatar
Pierre Ynard committed
116
	../include/vlc_windows_interfaces.h \
117 118
	$(NULL)

119
../include/vlc_about.h: Makefile.am $(top_srcdir)/COPYING $(top_srcdir)/THANKS $(top_srcdir)/AUTHORS
120 121 122 123 124 125 126
	$(AM_V_at)rm -f -- "$@.tmp"
	$(AM_V_at)mkdir -p -- ../include
	$(AM_V_GEN)(echo "/* Automatically generated file - DO NOT EDIT */" && \
	echo "static const char psz_license[] =" && \
	sed 's/"/\\"/g;s/^.*$$/\"&\\n\"/' "$(top_srcdir)/COPYING" && \
	echo ";" && \
	echo "static const char psz_thanks[] =" && \
JP Dinger's avatar
JP Dinger committed
127
	sed '/\$$Id:/d;s/"/\\"/g;s/<.*.> //;s/^.*$$/\"&\\n\"/' \
128 129 130
		"$(top_srcdir)/THANKS" && \
	echo ";" && \
	echo "static const char psz_authors[] =" && \
131
	sed '/\$$Id:/d;s/"/\\"/g;s/<.*.> //;s/^.*$$/\"&\\n\"/' \
132 133 134
		"$(top_srcdir)/AUTHORS" && \
	echo ";") >> "$@.tmp"
	$(AM_V_at)mv -f -- "$@.tmp" "$@"
135

136 137 138 139 140
###############################################################################
# pkg-config integration
###############################################################################

pkgconfigdir = $(libdir)/pkgconfig
141
pkgconfig_DATA = vlc-plugin.pc
142 143
CLEANFILES += $(pkgconfig_DATA)

144
.pc.in.pc: $(top_builddir)/config.status
145
	$(AM_V_GEN)cd "$(top_builddir)" && \
146 147
	$(SHELL) ./config.status --file="src/$@"

148 149 150 151 152 153 154 155 156 157 158 159 160
##############################################################################
# Windows resource files
##############################################################################

if HAVE_WIN32
noinst_DATA = libvlc_win32_rc.rc
endif
EXTRA_DIST += libvlc_win32_rc.rc.in

.rc.in.rc: $(top_builddir)/config.status
	cd "$(top_builddir)" && \
	$(SHELL) ./config.status --file="src/$@"

161 162 163 164
###############################################################################
# Building libvlc
###############################################################################

165
lib_LTLIBRARIES = libvlccore.la
166

167
AM_CPPFLAGS = $(INCICONV) $(IDN_CFLAGS) \
168
	-DMODULE_STRING=\"main\" \
169
	-DLOCALEDIR=\"$(localedir)\" \
170
	-DPKGDATADIR=\"$(vlcdatadir)\" \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
171
	-DPKGLIBDIR=\"$(vlclibdir)\"
172
AM_CFLAGS = $(CFLAGS_libvlccore)
173 174 175
if HAVE_DYNAMIC_PLUGINS
AM_CPPFLAGS += -DHAVE_DYNAMIC_PLUGINS
endif
176 177 178 179
if HAVE_DBUS
AM_CPPFLAGS += -DHAVE_DBUS
AM_CFLAGS += $(DBUS_CFLAGS)
endif
180 181 182 183 184

libvlccore_la_SOURCES = $(SOURCES_libvlc)
libvlccore_la_LDFLAGS = \
	-no-undefined \
	$(LDFLAGS_libvlccore) \
185
	-no-undefined \
186
	-export-symbols $(srcdir)/libvlccore.sym \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
187
	-version-info 5:0:0
188
libvlccore_la_LIBADD = $(LIBS_libvlccore) \
189
	../compat/libcompat.la \
190
	$(LTLIBINTL) $(LTLIBICONV) \
191
	$(IDN_LIBS) $(LIBPTHREAD) $(SOCKET_LIBS) $(LIBDL) $(LIBM)
192
libvlccore_la_DEPENDENCIES = libvlccore.sym
193
if HAVE_WIN32
194
libvlccore_la_DEPENDENCIES += libvlc_win32_rc.$(OBJEXT)
195
libvlccore_la_LDFLAGS += -Wl,libvlc_win32_rc.$(OBJEXT) -avoid-version
196
endif
197 198 199
if HAVE_DBUS
libvlccore_la_LIBADD += $(DBUS_LIBS)
endif
200

201
libvlc_win32_rc.$(OBJEXT): libvlc_win32_rc.rc
202
	$(WINDRES) --include-dir $(top_srcdir)/share --include-dir $(top_srcdir)/extras/package/win32 -i $< -o $@
203

204
EXTRA_libvlccore_la_SOURCES = \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
205
	$(SOURCES_libvlc_darwin) \
206
	$(SOURCES_libvlc_linux) \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
207
	$(SOURCES_libvlc_win32) \
komh's avatar
komh committed
208
	$(SOURCES_libvlc_os2) \
209
	$(SOURCES_libvlc_other) \
210
	$(SOURCES_libvlc_httpd) \
211
	$(SOURCES_libvlc_sout) \
212
	$(SOURCES_libvlc_vlm) \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
213
	$(NULL)
214
if HAVE_DARWIN
215
libvlccore_la_SOURCES += $(SOURCES_libvlc_darwin)
216 217
else
if HAVE_LINUX
218
libvlccore_la_SOURCES += $(SOURCES_libvlc_linux)
219
else
220
if HAVE_WIN32
221
libvlccore_la_SOURCES += $(SOURCES_libvlc_win32)
222
else
223
if HAVE_SYMBIAN
224
#libvlccore_la_SOURCES += $(SOURCES_libvlc_symbian)
225
else
komh's avatar
komh committed
226 227 228
if HAVE_OS2
libvlccore_la_SOURCES += $(SOURCES_libvlc_os2)
else
229
libvlccore_la_SOURCES += $(SOURCES_libvlc_other)
230
endif
231 232 233
endif
endif
endif
234
endif
235 236 237
if BUILD_HTTPD
libvlccore_la_SOURCES += $(SOURCES_libvlc_httpd)
endif
238
if ENABLE_SOUT
239
libvlccore_la_SOURCES += $(SOURCES_libvlc_sout)
240 241 242
if ENABLE_VLM
libvlccore_la_SOURCES += $(SOURCES_libvlc_vlm)
endif
243
endif
244

245
SOURCES_libvlc_darwin = \
Pierre Ynard's avatar
Pierre Ynard committed
246
	posix/darwin_dirs.c \
247
	posix/filesystem.c \
248
	posix/plugin.c \
249
	posix/thread.c \
250
	posix/timer.c \
251
	posix/darwin_specific.c \
252
	posix/rand.c \
253 254
	$(NULL)

255
SOURCES_libvlc_linux = \
256 257
	posix/dirs.c \
	posix/filesystem.c \
258
	posix/plugin.c \
259
	posix/thread.c \
260
	posix/timer.c \
261
	posix/linux_cpu.c \
262
	posix/linux_specific.c \
263
	posix/specific.c \
264
	posix/rand.c \
265 266
	$(NULL)

267
SOURCES_libvlc_win32 = \
268
	win32/dirs.c \
269
	win32/filesystem.c \
270
	win32/plugin.c \
271
	win32/thread.c \
272
	win32/specific.c \
273
	win32/winsock.c \
274
	win32/rand.c \
275 276
	$(NULL)

277 278
SOURCES_libvlc_symbian = \
	symbian/path.cpp \
279
	symbian/dirs.c \
280
	win32/plugin.c \
281
	posix/rand.c \
282 283
	$(NULL)

komh's avatar
komh committed
284
SOURCES_libvlc_os2 = \
285
	os2/getaddrinfo.c \
286
	os2/dirs.c \
287 288
	os2/filesystem.c \
	os2/plugin.c \
komh's avatar
komh committed
289
	os2/thread.c \
komh's avatar
komh committed
290
	os2/specific.c \
291
	os2/rand.c \
komh's avatar
komh committed
292 293
	$(NULL)

294
SOURCES_libvlc_other = \
295 296 297
	posix/dirs.c \
	posix/filesystem.c \
	posix/thread.c \
298
	posix/timer.c \
299
	posix/plugin.c \
300
	posix/specific.c \
301
	posix/rand.c \
302
	$(NULL)
303

304 305 306
SOURCES_libvlc_common = \
	libvlc.c \
	libvlc.h \
307
	libvlc-module.c \
308
	missing.c \
309
	revision.c \
310
	version.c \
311
	interface/dialog.c \
312
	interface/interface.c \
313
	playlist/playlist_internal.h \
314
	playlist/art.c \
Christophe Mutricy's avatar
Christophe Mutricy committed
315
	playlist/art.h \
316 317 318
	playlist/thread.c \
	playlist/control.c \
	playlist/engine.c \
319
	playlist/fetcher.c \
Christophe Mutricy's avatar
Christophe Mutricy committed
320
	playlist/fetcher.h \
321 322
	playlist/sort.c \
	playlist/loadsave.c \
323
	playlist/preparser.c \
Christophe Mutricy's avatar
Christophe Mutricy committed
324
	playlist/preparser.h \
325
	playlist/tree.c \
326
	playlist/item.c \
327
	playlist/search.c \
328
	playlist/services_discovery.c \
329
	input/item.c \
330 331 332 333
	input/access.c \
	input/clock.c \
	input/control.c \
	input/decoder.c \
334
	input/decoder_synchro.c \
335 336
	input/demux.c \
	input/es_out.c \
337
	input/es_out_timeshift.c \
338
	input/event.c \
339
	input/input.c \
Christophe Mutricy's avatar
Christophe Mutricy committed
340
	input/info.h \
341
	input/meta.c \
342
	input/access.h \
343 344
	input/clock.h \
	input/decoder.h \
345
	input/demux.h \
346
	input/es_out.h \
347
	input/es_out_timeshift.h \
348
	input/event.h \
349
	input/item.h \
350
	input/stream.h \
351
	input/input_internal.h \
352
	input/input_interface.h \
353
	input/vlm_internal.h \
Laurent Aimar's avatar
Laurent Aimar committed
354
	input/vlm_event.h \
355 356
	input/resource.h \
	input/resource.c \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
357
	input/stats.c \
358
	input/stream.c \
359
	input/stream_demux.c \
360
	input/stream_filter.c \
361
	input/stream_memory.c \
362 363
	input/subtitles.c \
	input/var.c \
ivoire's avatar
ivoire committed
364
	video_output/chrono.h \
365 366
	video_output/control.c \
	video_output/control.h \
367 368
	video_output/display.c \
	video_output/display.h \
Pierre Ynard's avatar
Pierre Ynard committed
369
	video_output/event.h \
370 371
	video_output/inhibit.c \
	video_output/inhibit.h \
372 373
	video_output/interlacing.c \
	video_output/interlacing.h \
374 375
	video_output/snapshot.c \
	video_output/snapshot.h \
376
	video_output/statistic.h \
377 378
	video_output/postprocessing.c \
	video_output/postprocessing.h \
379 380
	video_output/video_output.c \
	video_output/video_text.c \
381
	video_output/video_epg.c \
382 383
	video_output/video_widgets.c \
	video_output/vout_subpictures.c \
384
	video_output/window.c \
385
	video_output/opengl.c \
386
	video_output/vout_intf.c \
Laurent Aimar's avatar
Laurent Aimar committed
387
	video_output/vout_internal.h \
388
	video_output/vout_control.h \
389
	video_output/vout_wrapper.c \
zorglub's avatar
zorglub committed
390
	audio_output/aout_internal.h \
391 392 393
	audio_output/common.c \
	audio_output/dec.c \
	audio_output/filters.c \
394
	audio_output/input.c \
395
	audio_output/output.c \
396
	audio_output/volume.c \
397 398 399 400 401 402 403
	audio_output/intf.c \
	osd/osd.c \
	osd/osd_text.c \
	network/getaddrinfo.c \
	network/io.c \
	network/tcp.c \
	network/udp.c \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
404
	network/rootbind.c \
405
	network/tls.c \
406 407 408
	text/charset.c \
	text/strings.c \
	text/unicode.c \
409
	text/url.c \
410
	text/filesystem.c \
411 412
	text/iso_lang.c \
	text/iso-639_def.h \
413
	misc/md5.c \
414
	misc/probe.c \
415
	misc/rand.c \
416 417
	misc/mtime.c \
	misc/block.c \
418
	misc/fourcc.c \
419
	misc/es_format.c \
420
	misc/picture.c \
421 422
	misc/picture_fifo.c \
	misc/picture_pool.c \
423 424
	modules/modules.h \
	modules/modules.c \
425
	modules/bank.c \
426
	modules/cache.c \
427
	modules/entry.c \
428
	modules/textdomain.c \
429 430
	misc/threads.c \
	misc/cpu.c \
431
	misc/epg.c \
432
	misc/exit.c \
433
	config/configuration.h \
434 435 436
	config/core.c \
	config/chain.c \
	config/file.c \
437
        config/help.c \
438
	config/intf.c \
439
	config/keys.c \
440
	config/cmdline.c \
441 442
	config/getopt.c \
	config/vlc_getopt.h \
443
	misc/events.c \
444 445
	misc/image.c \
	misc/messages.c \
446
	misc/mime.c \
447
	misc/objects.c \
zorglub's avatar
zorglub committed
448
	misc/variables.h \
449 450
	misc/variables.c \
	misc/error.c \
Rafaël Carré's avatar
Typo  
Rafaël Carré committed
451
	misc/update.h \
452
	misc/update.c \
453
	misc/update_crypto.c \
454
	misc/xml.c \
jetru's avatar
jetru committed
455
	misc/media_library.c \
456
	extras/libc.c \
457
	extras/tdestroy.c \
Laurent Aimar's avatar
Laurent Aimar committed
458
	misc/filter.c \
459
	misc/filter_chain.c \
460
	misc/http_auth.c \
jetru's avatar
jetru committed
461
	misc/sql.c \
462
	misc/text_style.c \
463 464
	misc/subpicture.c \
	misc/subpicture.h \
465 466
	$(NULL)

467 468 469 470
SOURCES_libvlc_httpd = \
	network/httpd.c \
	$(NULL)

471 472 473 474 475 476 477 478
SOURCES_libvlc_sout = \
	stream_output/stream_output.c \
	stream_output/stream_output.h \
	stream_output/announce.c \
	stream_output/sap.c \
	stream_output/sdp.c \
	$(NULL)

479 480
SOURCES_libvlc_vlm = \
	input/vlm.c \
Laurent Aimar's avatar
Laurent Aimar committed
481
	input/vlm_event.c \
482 483 484
	input/vlmshell.c \
	$(NULL)

485 486 487 488
SOURCES_libvlc = \
	$(SOURCES_libvlc_common) \
	$(NULL)

489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520
# Unit/regression tests
#
check_PROGRAMS = \
	test_block \
	test_dictionary \
	test_i18n_atof \
	test_md5 \
	test_timer \
	test_url \
	test_utf8 \
	test_xmlent \
	test_headers

TESTS = $(check_PROGRAMS)

test_block_SOURCES = test/block_test.c
test_block_LDADD = $(LDADD) $(LIBS_libvlccore)
test_block_DEPENDENCIES =

test_dictionary_SOURCES = test/dictionary.c
test_i18n_atof_SOURCES = test/i18n_atof.c
test_md5_SOURCES = test/md5.c
test_timer_SOURCES = test/timer.c
test_url_SOURCES = test/url.c
test_utf8_SOURCES = test/utf8.c
test_xmlent_SOURCES = test/xmlent.c
test_headers_SOURCES = test/headers.c

AM_LDFLAGS = -no-install
LDADD = libvlccore.la \
	../compat/libcompat.la

Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
521 522 523 524 525
###############################################################################
# GIT revision
###############################################################################

BUILT_SOURCES += stamp-revision
526
MAINTAINERCLEANFILES = $(srcdir)/revision.txt $(srcdir)/revision.c
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
527

528 529 530 531
$(srcdir)/revision.c: $(srcdir)/revision.txt
	$(AM_V_at)rm -f -- $@
	$(AM_V_GEN)echo "const char psz_vlc_changeset[] = \"$$(cat $<)\";" \
		> $@
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
532

533
$(srcdir)/revision.txt:
534
	$(AM_V_at)$(MAKE) stamp-revision
535
	$(AM_V_GEN)touch $@
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
536 537

stamp-revision:
538
	$(AM_V_at)rm -f -- revision.tmp
539 540 541 542 543 544
	$(AM_V_GEN)if ! git \
			--git-dir="$(top_srcdir)/.git/" describe \
			--tags --long --match '?.*.*' --always; then \
		cat $(srcdir)/revision.txt ; \
	fi > revision.tmp
	$(AM_V_at)if diff revision.tmp $(srcdir)/revision.txt >/dev/null 2>&1; then \
545 546
		rm -f -- revision.tmp; \
	else \
547 548 549
		mv -f -- revision.tmp $(srcdir)/revision.txt; \
	fi
#2>&1
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
550

551 552 553
###############################################################################
# Unit/regression test
###############################################################################
554

555
dist_check_SCRIPTS = check_headers
556

557
check-local:
558
	for h in `echo $(pkginclude_HEADERS) | sed -e s,\.\./include/,,g`; \
559 560 561 562 563 564 565 566
	do \
		echo grep - "#include <$$h>" $(srcdir)/test/headers.c ; \
		if ! grep -- "#include <$$h>" $(srcdir)/test/headers.c ; \
		then \
			echo "Header $$h not included in test/headers.c!"; \
			exit 1; \
		fi ; \
	done
567
	$(SHELL) $(srcdir)/check_headers $(pluginsinclude_HEADERS)
568

569
FORCE:
570 571 572 573
	@echo "Generated source cannot be phony. Go away." >&2
	@exit 1

.PHONY: FORCE