Makefile.am 13.9 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 \
Rafaël Carré's avatar
Rafaël Carré committed
26
	../include/vlc_addons.h \
27
	../include/vlc_aout.h \
28
	../include/vlc_aout_volume.h \
29
	../include/vlc_arrays.h \
30
	../include/vlc_atomic.h \
31
	../include/vlc_avcodec.h \
32 33 34 35 36
	../include/vlc_bits.h \
	../include/vlc_block.h \
	../include/vlc_block_helper.h \
	../include/vlc_charset.h \
	../include/vlc_codec.h \
37 38
	../include/vlc_common.h \
	../include/vlc_config.h \
39
	../include/vlc_config_cat.h \
40
	../include/vlc_configuration.h \
41
	../include/vlc_cpu.h \
42
	../include/vlc_dialog.h \
43
	../include/vlc_demux.h \
44
	../include/vlc_epg.h \
45
	../include/vlc_es.h \
46 47
	../include/vlc_es_out.h \
	../include/vlc_events.h \
48
	../include/vlc_filter.h \
49
	../include/vlc_fourcc.h \
50
	../include/vlc_fs.h \
51
	../include/vlc_gcrypt.h \
52
	../include/vlc_opengl.h \
53
	../include/vlc_http.h \
54
	../include/vlc_httpd.h \
55
	../include/vlc_image.h \
56
	../include/vlc_inhibit.h \
57
	../include/vlc_input.h \
58
	../include/vlc_input_item.h \
Rafaël Carré's avatar
Rafaël Carré committed
59
	../include/vlc_keys.h \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
60
	../include/vlc_main.h \
61
	../include/vlc_md5.h \
62
	../include/vlc_messages.h \
63
	../include/vlc_meta.h \
64
	../include/vlc_meta_fetcher.h \
Srikanth Raju's avatar
Srikanth Raju 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 \
80
	../include/vlc_fingerprinter.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 \
Rémi Denis-Courmont's avatar
Tabs  
Rémi Denis-Courmont committed
111
	../include/vlc_pgpkey.h \
112 113
	../include/vlc_update.h \
	../include/vlc_vod.h \
Pierre Ynard's avatar
Pierre Ynard committed
114
	../include/vlc_vout_wrapper.h \
Pierre Ynard's avatar
Pierre Ynard committed
115
	../include/vlc_windows_interfaces.h \
116 117
	$(NULL)

118
../include/vlc_about.h: Makefile.am $(top_srcdir)/COPYING $(top_srcdir)/THANKS $(top_srcdir)/AUTHORS
119 120 121 122 123 124 125
	$(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
126
	sed '/\$$Id:/d;s/"/\\"/g;s/<.*.> //;s/^.*$$/\"&\\n\"/' \
127 128 129
		"$(top_srcdir)/THANKS" && \
	echo ";" && \
	echo "static const char psz_authors[] =" && \
130
	sed '/\$$Id:/d;s/"/\\"/g;s/<.*.> //;s/^.*$$/\"&\\n\"/' \
131 132 133
		"$(top_srcdir)/AUTHORS" && \
	echo ";") >> "$@.tmp"
	$(AM_V_at)mv -f -- "$@.tmp" "$@"
134

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

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

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

147 148 149 150 151 152 153 154 155 156 157 158 159
##############################################################################
# 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/$@"

160 161 162 163
###############################################################################
# Building libvlc
###############################################################################

164
lib_LTLIBRARIES = libvlccore.la
165

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

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

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

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

248
SOURCES_libvlc_darwin = \
249
	darwin/dirs.c \
250
	posix/filesystem.c \
251
	posix/plugin.c \
252
	darwin/thread.c \
253
	posix/timer.c \
254
	darwin/specific.c \
255
	posix/rand.c \
256
	darwin/error.c \
257
	darwin/netconf.c \
258 259
	$(NULL)

260 261
SOURCES_libvlc_android = \
	android/dirs.c \
Rafaël Carré's avatar
Rafaël Carré committed
262
	android/thread.c \
263
	android/error.c \
264
	posix/filesystem.c \
265
	android/netconf.c \
266 267 268 269 270 271 272 273
	posix/plugin.c \
	posix/timer.c \
	posix/linux_cpu.c \
	posix/linux_specific.c \
	posix/specific.c \
	posix/rand.c \
	$(NULL)

274
SOURCES_libvlc_linux = \
275
	posix/dirs.c \
276
	posix/error.c \
277
	posix/filesystem.c \
278
	posix/netconf.c \
279
	posix/plugin.c \
280
	posix/thread.c \
281
	posix/timer.c \
282
	posix/linux_cpu.c \
283
	posix/linux_specific.c \
284
	posix/specific.c \
285
	posix/rand.c \
286 287
	$(NULL)

288
SOURCES_libvlc_win32 = \
289
	win32/dirs.c \
290
	win32/error.c \
291
	win32/filesystem.c \
292
	win32/netconf.c \
293
	win32/plugin.c \
294
	win32/thread.c \
295
	win32/specific.c \
296
	win32/winsock.c \
297
	win32/rand.c \
298 299
	$(NULL)

300 301
SOURCES_libvlc_symbian = \
	symbian/path.cpp \
302
	symbian/dirs.c \
303
	win32/plugin.c \
304
	posix/rand.c \
305 306
	$(NULL)

307
SOURCES_libvlc_os2 = \
308
	os2/getaddrinfo.c \
309
	os2/dirs.c \
310
	darwin/error.c \
311
	os2/filesystem.c \
KO Myung-Hun's avatar
KO Myung-Hun committed
312
	os2/netconf.c \
313
	os2/plugin.c \
314
	os2/thread.c \
315
	os2/specific.c \
316
	os2/rand.c \
317 318
	$(NULL)

319
SOURCES_libvlc_other = \
320
	posix/dirs.c \
321
	posix/error.c \
322
	posix/filesystem.c \
323
	posix/netconf.c \
324
	posix/thread.c \
325
	posix/timer.c \
326
	posix/plugin.c \
327
	posix/specific.c \
328
	posix/rand.c \
329
	$(NULL)
330

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

490 491 492 493
SOURCES_libvlc_httpd = \
	network/httpd.c \
	$(NULL)

494 495 496 497 498 499 500
SOURCES_libvlc_sout = \
	stream_output/stream_output.c \
	stream_output/stream_output.h \
	stream_output/sap.c \
	stream_output/sdp.c \
	$(NULL)

501 502
SOURCES_libvlc_vlm = \
	input/vlm.c \
Laurent Aimar's avatar
Laurent Aimar committed
503
	input/vlm_event.c \
504 505 506
	input/vlmshell.c \
	$(NULL)

507 508 509 510
SOURCES_libvlc = \
	$(SOURCES_libvlc_common) \
	$(NULL)

511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542
# 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
543 544 545 546 547
###############################################################################
# GIT revision
###############################################################################

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

550 551 552 553
$(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
554

555
$(srcdir)/revision.txt:
556
	$(AM_V_at)$(MAKE) stamp-revision
557
	$(AM_V_GEN)touch $@
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
558 559

stamp-revision:
560
	$(AM_V_at)rm -f -- revision.tmp
561 562 563 564 565 566
	$(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 \
567 568
		rm -f -- revision.tmp; \
	else \
569 570 571
		mv -f -- revision.tmp $(srcdir)/revision.txt; \
	fi
#2>&1
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
572

573 574 575
###############################################################################
# Unit/regression test
###############################################################################
576

577
dist_check_SCRIPTS = check_headers
578

579
check-local:
580
	for h in `echo $(pkginclude_HEADERS) | sed -e s,\.\./include/,,g`; \
581 582 583 584 585 586 587 588
	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
589
	$(SHELL) $(srcdir)/check_headers $(pluginsinclude_HEADERS)
590

591
FORCE:
592 593 594 595
	@echo "Generated source cannot be phony. Go away." >&2
	@exit 1

.PHONY: FORCE