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 \
Clément Stenac's avatar
Clément Stenac 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 \
Clément Stenac's avatar
Clément Stenac 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 \
Clément Stenac's avatar
Clément Stenac 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 \
Clément Stenac's avatar
Clément Stenac committed
85
	../include/vlc_vout.h \
86 87 88
	../include/vlc_vlm.h \
	../include/vlc_vod.h \
	../include/vlc_xml.h \
Clément Stenac's avatar
Clément Stenac 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)
Clément Stenac's avatar
Clément Stenac 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)
Clément Stenac's avatar
Clément Stenac 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
Clément Stenac's avatar
Clément Stenac 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 \
Clément Stenac's avatar
Clément Stenac committed
211
	libvlc-common.c \
212
	libvlc.h \
213
	libvlc-module.c \
Clément Stenac's avatar
Clément Stenac 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 \
Clément Stenac's avatar
Clément Stenac 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 \
Clément Stenac's avatar
Clément Stenac 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 \
Clément Stenac's avatar
Clément Stenac committed
286
	misc/modules.h \
287 288 289 290
	misc/modules.c \
	misc/threads.c \
	misc/stats.c \
	misc/cpu.c \
Clément Stenac's avatar
Clément Stenac 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 \
Clément Stenac's avatar
Clément Stenac 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 = \
Clément Stenac's avatar
Clément Stenac 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 \
Clément Stenac's avatar
Clément Stenac 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

Clément Stenac's avatar
Clément Stenac 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: