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

5 6
NULL =

7 8 9
# SUBDIRS stores the directories where a "make" is required when building
# something. DIST_SUBDIRS stores the directories where nothing is built but
# which have makefiles with distribution information.
10 11
#  - intl should come before modules and . because all the code uses gettext
#  - modules should come before . because vlc needs the builtins
12
#  - . should come before mozilla/bindings because the plugin needs libvlc_pic.a
13
#  - po should come before . because VLC.app needs the pofiles
14
#  - loader should come before modules because some plugins need it
15
SUBDIRS = intl loader modules po . mozilla bindings activex share m4 doc
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
16
DIST_SUBDIRS = $(SUBDIRS) debian ipkg lib
17

18 19 20
EXTRA_DIST = \
	HACKING \
	INSTALL.win32 \
21
	INSTALL.wince \
22
	vlc.exe.manifest \
23 24 25 26 27
	MAINTAINERS \
	README.MacOSX.rtf \
	bootstrap \
	src/extras/COPYING \
	toolbox \
28
	vlc-api.pl \
Sam Hocevar's avatar
Sam Hocevar committed
29
	vlc-config.in.in \
30
	vlc.spec \
Alexis de Lattre's avatar
Alexis de Lattre committed
31
	vlc.spec.mdk \
32
	vlc.win32.nsi \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
33
	src/misc/modules_builtin.h.in \
34 35
	$(NULL)

Christophe Mutricy's avatar
Christophe Mutricy committed
36
BUILT_SOURCES_distclean = vlc-config compile
37
BUILT_SOURCES_clean = \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
38
	stamp-api \
39
	macosx-sdk \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
40 41 42 43
	src/misc/modules_builtin.h \
	src/misc/version.c \
	$(NULL)

44
BUILT_SOURCES = $(BUILT_SOURCES_distclean) $(BUILT_SOURCES_clean)
45

46 47
SUFFIXES = 

48 49 50
DISTCHECK_CONFIGURE_FLAGS = --disable-dvd --disable-mad --disable-libmpeg2 \
	--disable-ffmpeg --disable-faad --disable-skins2

51 52 53
# Tell aclocal to use -I m4. Wonder if it really works.
ACLOCAL_AMFLAGS = -I m4

54
# XXX: these flags could be set in configure.ac, but we set them here
55
# because old versions of automake don't support them in configure.ac.
56
AUTOMAKE_OPTIONS = dist-bzip2 subdir-objects
57

58 59 60 61 62 63 64 65
###############################################################################
# Headers
###############################################################################

pkgincludedir = $(includedir)/vlc

dist_pkginclude_HEADERS = \
	include/vlc/vlc.h \
zorglub's avatar
zorglub committed
66
	include/vlc/libvlc.h \
67 68 69 70 71
	include/vlc/aout.h \
	include/vlc/vout.h \
	include/vlc/sout.h \
	include/vlc/decoder.h \
	include/vlc/input.h \
72
	include/vlc/intf.h \
zorglub's avatar
zorglub committed
73 74
	include/vlc/mediacontrol.h \
	include/vlc/mediacontrol_structures.h \
75
	$(NULL)
76

77
noinst_HEADERS = $(HEADERS_include)
78
noinst_DATA = $(DATA_noinst_beos) $(DATA_noinst_libvlc)
79 80 81 82 83

HEADERS_include = \
	include/aout_internal.h \
	include/audio_output.h \
	include/beos_specific.h \
84
	include/charset.h \
85
	include/codecs.h \
86 87
	include/configuration.h \
	include/darwin_specific.h \
88 89 90 91 92 93 94 95 96
	include/intf_eject.h \
	include/iso_lang.h \
	include/main.h \
	include/mmx.h \
	include/modules.h \
	include/modules_inner.h \
	include/mtime.h \
	include/network.h \
	include/os_specific.h \
97
	include/snapshot.h \
98
	include/stream_output.h \
Sam Hocevar's avatar
Sam Hocevar committed
99
	include/variables.h \
100
	include/video_output.h \
101
	include/vlc_access.h \
102
	include/vlc_acl.h \
103
	include/vlc_bits.h \
104
	include/vlc_block.h \
gbazin's avatar
 
gbazin committed
105
	include/vlc_block_helper.h \
gbazin's avatar
 
gbazin committed
106
	include/vlc_codec.h \
107 108 109
	include/vlc_common.h \
	include/vlc_config.h \
	include/vlc_cpu.h \
110
	include/vlc_demux.h \
111
	include/vlc_error.h \
112
	include/vlc_es.h \
113
	include/vlc_es_out.h \
114
	include/vlc_filter.h \
zorglub's avatar
zorglub committed
115
	include/vlc_config_cat.h \
116
	include/vlc_httpd.h \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
117
	include/vlc_tls.h \
118
	include/vlc_md5.h \
119
	include/vlc_image.h \
120
	include/vlc_input.h \
121
	include/vlc_interaction.h \
122
	include/vlc_interface.h \
gbazin's avatar
 
gbazin committed
123
	include/vlc_keys.h \
124
	include/vlc_messages.h \
gbazin's avatar
 
gbazin committed
125
	include/vlc_meta.h \
126
	include/vlc_objects.h \
127
	include/vlc_osd.h \
128
	include/vlc_playlist.h \
129
	include/vlc_spu.h \
130
	include/vlc_stream.h \
131
	include/vlc_symbols.h \
132
	include/vlc_threads_funcs.h \
133
	include/vlc_threads.h \
134
	include/vlc_update.h \
135
	include/vlc_video.h \
136
	include/vlc_vlm.h \
137
	include/vlc_vod.h \
gbazin's avatar
gbazin committed
138
	include/vlc_xml.h \
139
	include/vout_synchro.h \
140
	include/win32_specific.h \
zorglub's avatar
zorglub committed
141 142
	include/libvlc_internal.h \
	include/mediacontrol_internal.h
143
	$(NULL)
144

145
src/misc/modules_builtin.h: Makefile src/misc/modules_builtin.h.in vlc-config
Sam Hocevar's avatar
Sam Hocevar committed
146
	srcdir=$(srcdir) $(srcdir)/toolbox --update-includes
147
	touch src/misc/modules_builtin.h
148

149 150
src/misc/modules.c: src/misc/modules_builtin.h

151 152 153
src/misc/version.c: FORCE
	srcdir=$(srcdir) $(srcdir)/toolbox --update-version

154
# These dependencies are mandatory
155
$(SOURCES_libvlc): $(LIB_intl)
156

157 158 159 160 161
###############################################################################
# Optional libintl - FIXME, bad dependencies
###############################################################################

intl/libintl.a: FORCE
Sam Hocevar's avatar
Sam Hocevar committed
162
	cd $(top_builddir)/intl && $(MAKE) $(AM_MAKEFLAGS)
163 164 165 166 167

if BUILD_INTL
LIB_intl = intl/libintl.a
endif

168 169 170 171 172 173 174
###############################################################################
# MacOS X project
###############################################################################

EXTRA_DIST += \
	extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib \
	extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib \
175
	extras/MacOSX/Resources/English.lproj/MainMenu.nib/keyedobjects.nib \
hartman's avatar
hartman committed
176 177
	extras/MacOSX/Resources/English.lproj/About.nib/classes.nib \
	extras/MacOSX/Resources/English.lproj/About.nib/info.nib \
178
	extras/MacOSX/Resources/English.lproj/About.nib/keyedobjects.nib \
hartman's avatar
hartman committed
179 180
	extras/MacOSX/Resources/English.lproj/Open.nib/classes.nib \
	extras/MacOSX/Resources/English.lproj/Open.nib/info.nib \
181
	extras/MacOSX/Resources/English.lproj/Open.nib/keyedobjects.nib \
hartman's avatar
hartman committed
182 183
	extras/MacOSX/Resources/English.lproj/Preferences.nib/classes.nib \
	extras/MacOSX/Resources/English.lproj/Preferences.nib/info.nib \
184
	extras/MacOSX/Resources/English.lproj/Preferences.nib/keyedobjects.nib \
185 186 187
	extras/MacOSX/Resources/English.lproj/Wizard.nib/classes.nib \
	extras/MacOSX/Resources/English.lproj/Wizard.nib/info.nib \
	extras/MacOSX/Resources/English.lproj/Wizard.nib/keyedobjects.nib \
188
	extras/MacOSX/Resources/English.lproj/Bookmarks.nib/classes.nib \
189 190
	extras/MacOSX/Resources/English.lproj/Bookmarks.nib/info.nib \
	extras/MacOSX/Resources/English.lproj/Bookmarks.nib/keyedobjects.nib \
191 192 193
	extras/MacOSX/Resources/English.lproj/Extended.nib/classes.nib \
	extras/MacOSX/Resources/English.lproj/Extended.nib/info.nib \
	extras/MacOSX/Resources/English.lproj/Extended.nib/keyedobjects.nib \
194 195 196
	extras/MacOSX/Resources/English.lproj/SFilters.nib/classes.nib \
	extras/MacOSX/Resources/English.lproj/SFilters.nib/info.nib \
	extras/MacOSX/Resources/English.lproj/SFilters.nib/keyedobjects.nib \
197
	extras/MacOSX/Resources/English.lproj/InfoPlist.strings \
198 199 200 201 202 203 204 205
	extras/MacOSX/Resources/a52.icns \
	extras/MacOSX/Resources/aac.icns \
	extras/MacOSX/Resources/asf.icns \
	extras/MacOSX/Resources/asx.icns \
	extras/MacOSX/Resources/avi.icns \
	extras/MacOSX/Resources/bin.icns \
	extras/MacOSX/Resources/cue.icns \
	extras/MacOSX/Resources/dat.icns \
206
	extras/MacOSX/Resources/divx.icns \
207
	extras/MacOSX/Resources/dv.icns \
208
	extras/MacOSX/Resources/generic.icns \
209 210 211 212
	extras/MacOSX/Resources/m3u.icns \
	extras/MacOSX/Resources/mov.icns \
	extras/MacOSX/Resources/mp3.icns \
	extras/MacOSX/Resources/mp4.icns \
213 214 215 216
	extras/MacOSX/Resources/mpeg.icns \
	extras/MacOSX/Resources/mpeg1.icns \
	extras/MacOSX/Resources/mpeg2.icns \
	extras/MacOSX/Resources/mpeg4.icns \
217 218 219 220 221 222
	extras/MacOSX/Resources/mpg.icns \
	extras/MacOSX/Resources/ogg.icns \
	extras/MacOSX/Resources/ogm.icns \
	extras/MacOSX/Resources/pls.icns \
	extras/MacOSX/Resources/srt.icns \
	extras/MacOSX/Resources/sub.icns \
223
	extras/MacOSX/Resources/vlc.icns \
224 225 226
	extras/MacOSX/Resources/vob.icns \
	extras/MacOSX/Resources/wma.icns \
	extras/MacOSX/Resources/wmv.icns \
227
	extras/MacOSX/Resources/pause.png \
228
	extras/MacOSX/Resources/pause_blue.png \
229
	extras/MacOSX/Resources/play.png \
230
	extras/MacOSX/Resources/play_blue.png \
231
	extras/MacOSX/Resources/stop.png \
232 233 234 235
	extras/MacOSX/Resources/stop_blue.png \
	extras/MacOSX/Resources/display.png \
	extras/MacOSX/Resources/display_slider.png \
	extras/MacOSX/Resources/display_track.png \
236 237
	extras/MacOSX/Resources/equalizerdrawer_active.png \
	extras/MacOSX/Resources/equalizerdrawer_blue.png \
238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254
	extras/MacOSX/Resources/fullscreen_active.png \
	extras/MacOSX/Resources/fullscreen_blue.png \
	extras/MacOSX/Resources/next_active.png \
	extras/MacOSX/Resources/next_blue.png \
	extras/MacOSX/Resources/playlistdrawer_active.png \
	extras/MacOSX/Resources/playlistdrawer_blue.png \
	extras/MacOSX/Resources/previous_active.png \
	extras/MacOSX/Resources/previous_blue.png \
	extras/MacOSX/Resources/skip_forward_active.png \
	extras/MacOSX/Resources/skip_forward_blue.png \
	extras/MacOSX/Resources/skip_previous_active.png \
	extras/MacOSX/Resources/skip_previous_blue.png \
	extras/MacOSX/Resources/volume_high.png \
	extras/MacOSX/Resources/volume_low.png \
	extras/MacOSX/Resources/volumeslider_blue.png \
	extras/MacOSX/Resources/volumeslider_normal.png \
	extras/MacOSX/Resources/volumetrack.png \
255
	extras/MacOSX/Resources/about_bg.png \
256
	extras/MacOSX/Resources/vlc.scriptSuite \
257
	extras/MacOSX/Resources/vlc.scriptTerminology \
258
	extras/MacOSX/Resources/README \
259
	extras/MacOSX/vlc.pbproj/project.pbxproj \
260
	extras/MacOSX/Delete_Preferences.app/Contents/Info.plist \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
261
	extras/MacOSX/Delete_Preferences.app/Contents/PkgInfo \
262 263 264 265 266
	extras/MacOSX/Delete_Preferences.app/Contents/MacOS/applet \
	extras/MacOSX/Delete_Preferences.app/Contents/Resources/description.rtfd/TXT.rtf \
	extras/MacOSX/Delete_Preferences.app/Contents/Resources/applet.icns \
	extras/MacOSX/Delete_Preferences.app/Contents/Resources/applet.rsrc \
	extras/MacOSX/Delete_Preferences.app/Contents/Resources/Scripts/main.scpt \
267 268
	extras/Makefile \
	extras/zsh.cpp \
269 270 271
	$(NULL)

###############################################################################
272
# MS Visual Studio and eMbedded Visual Studio projects
273 274 275 276
###############################################################################

EXTRA_DIST += \
	msvc/vlc.dsw \
277 278
	msvc/libvlc.dsp.in \
	msvc/plugins.dsp.in \
279
	msvc/vlc.dsp.in \
280
	msvc/config.h.in \
281
	msvc/modules_builtin_msvc.h \
282
	evc/vlc.vcw \
283
	evc/libvlc.vcp.in \
284
	evc/vlc.vcp.in \
285
	evc/plugins.vcp.in \
286
	evc/errno.h \
287
	evc/config.h.in \
288
	evc/modules_builtin_evc.h \
289 290
	$(NULL)

gbazin's avatar
 
gbazin committed
291
dist-hook:
292 293
	cd $(distdir) && srcdir=. $(SHELL) ./toolbox --update-vc
	distdir=$(distdir) srcdir=$(srcdir) $(SHELL) $(srcdir)/toolbox --dist-contrib
gbazin's avatar
 
gbazin committed
294

295 296 297 298 299
###############################################################################
# Building libvlc
###############################################################################

bin_SCRIPTS = vlc-config
300
vlc-config: $(top_builddir)/config.status $(top_builddir)/vlc-config.in
301 302
	$(SHELL) ./config.status --file=vlc-config
	chmod 0755 vlc-config
303

304 305 306
vlc-config.in: vlc-config.in.in
	./config.status --recheck

307
MOSTLYCLEANFILES = $(DATA_noinst_libvlc)
308
CLEANFILES = $(BUILT_SOURCES_clean) stamp-builtin
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
309
DISTCLEANFILES = $(BUILT_SOURCES_distclean) vlc-config.in compile
310

311
lib_LIBRARIES = lib/libvlc.a $(lib_PICLIBRARIES)
312 313
if HAVE_WIN32
else
314
if BUILD_PIC
315
lib_PICLIBRARIES = lib/libvlc_pic.a
316 317
endif
endif
318 319

lib_libvlc_a_SOURCES = $(SOURCES_libvlc)
Sam Hocevar's avatar
Sam Hocevar committed
320 321 322
lib_libvlc_a_CFLAGS = `$(VLC_CONFIG) --cflags vlc`
lib_libvlc_a_CXXFLAGS = `$(VLC_CONFIG) --cxxflags vlc`
lib_libvlc_a_OBJCFLAGS = `$(VLC_CONFIG) --objcflags vlc`
323 324

lib_libvlc_pic_a_SOURCES = $(SOURCES_libvlc)
Sam Hocevar's avatar
Sam Hocevar committed
325 326 327
lib_libvlc_pic_a_CFLAGS = `$(VLC_CONFIG) --cflags vlc pic`
lib_libvlc_pic_a_CXXFLAGS = `$(VLC_CONFIG) --cxxflags vlc pic`
lib_libvlc_pic_a_OBJCFLAGS = `$(VLC_CONFIG) --objcflags vlc pic`
328 329

if HAVE_BEOS
330
OPT_SOURCES_libvlc_beos = $(SOURCES_libvlc_beos)
331 332
endif
if HAVE_DARWIN
333
OPT_SOURCES_libvlc_darwin = $(SOURCES_libvlc_darwin)
334 335
endif
if HAVE_WIN32
336
OPT_SOURCES_libvlc_win32 = $(SOURCES_libvlc_win32)
337
endif
338 339 340
if HAVE_WINCE
OPT_SOURCES_libvlc_win32 = $(SOURCES_libvlc_win32)
endif
341
if BUILD_DIRENT
342
OPT_SOURCES_libvlc_dirent = $(SOURCES_libvlc_dirent)
343 344
endif
if BUILD_GETOPT
345
OPT_SOURCES_libvlc_getopt = $(SOURCES_libvlc_getopt)
346
endif
347 348 349 350 351 352 353 354

# Build libvlc as a shared library
if BUILD_SHARED
DATA_noinst_libvlc = libvlc$(LIBEXT)
if HAVE_WIN32
OBJECTS_libvlc_so = $(lib_libvlc_a_OBJECTS)
else
OBJECTS_libvlc_so = $(lib_libvlc_pic_a_OBJECTS)
355
endif
356
endif
357

358 359 360 361 362 363 364 365 366 367
libvlc$(LIBEXT): $(OBJECTS_libvlc_so)
	@ldfl="`$(VLC_CONFIG) --libs plugin vlc $(pic) builtin`" ; \
	case `$(VLC_CONFIG) --linkage vlc` in \
	  c++)  ld="$(CXXLINK)" ;; \
	  objc) ld="$(OBJCLINK)" ;; \
	  c|*)  ld="$(LINK)" ;; \
	esac ; \
	echo $$ld $(OBJECTS_libvlc_so) $$ldfl ; \
	$$ld $(OBJECTS_libvlc_so) $$ldfl

368
EXTRA_DIST += \
369 370 371 372 373
	$(SOURCES_libvlc_beos) \
	$(SOURCES_libvlc_darwin) \
	$(SOURCES_libvlc_win32) \
	$(SOURCES_libvlc_dirent) \
	$(SOURCES_libvlc_getopt) \
374 375
	$(NULL)

376
SOURCES_libvlc_beos = \
377
	src/misc/beos_specific.cpp \
378 379
	$(NULL)

380
SOURCES_libvlc_darwin = \
381
	src/misc/darwin_specific.m \
382 383
	$(NULL)

384
SOURCES_libvlc_win32 = \
385 386 387
	src/misc/win32_specific.c \
	$(NULL)

388
SOURCES_libvlc_dirent = \
389 390 391
	src/extras/dirent.c \
	$(NULL)

392
SOURCES_libvlc_getopt = \
393 394 395 396 397
	src/extras/getopt.c \
	src/extras/getopt.h \
	src/extras/getopt1.c \
	$(NULL)

398
SOURCES_libvlc_common = \
399 400 401 402
	src/libvlc.c \
	src/libvlc.h \
	src/interface/interface.c \
	src/interface/intf_eject.c \
403
	src/interface/interaction.c \
404
	src/playlist/playlist.c \
zorglub's avatar
zorglub committed
405 406
	src/playlist/sort.c \
	src/playlist/loadsave.c \
zorglub's avatar
Fixes  
zorglub committed
407
	src/playlist/view.c \
zorglub's avatar
zorglub committed
408
	src/playlist/item.c \
409
	src/playlist/item-ext.c \
zorglub's avatar
zorglub committed
410
	src/playlist/services_discovery.c \
Laurent Aimar's avatar
Laurent Aimar committed
411 412
	src/input/access.c \
	src/input/clock.c \
gbazin's avatar
gbazin committed
413
	src/input/control.c \
Laurent Aimar's avatar
Laurent Aimar committed
414 415
	src/input/decoder.c \
	src/input/demux.c \
416
	src/input/es_out.c \
Laurent Aimar's avatar
Laurent Aimar committed
417 418
	src/input/input.c \
	src/input/input_internal.h \
419
	src/input/stream.c \
420
	src/input/mem_stream.c \
421
	src/input/subtitles.c \
Laurent Aimar's avatar
Laurent Aimar committed
422
	src/input/var.c \
423 424 425 426
	src/video_output/video_output.c \
	src/video_output/vout_pictures.c \
	src/video_output/vout_pictures.h \
	src/video_output/video_text.c \
427
	src/video_output/video_widgets.c \
428
	src/video_output/vout_subpictures.c \
429
	src/video_output/vout_synchro.c \
gbazin's avatar
gbazin committed
430
	src/video_output/vout_intf.c \
431 432 433 434 435 436 437 438
	src/audio_output/common.c \
	src/audio_output/dec.c \
	src/audio_output/filters.c \
	src/audio_output/input.c \
	src/audio_output/mixer.c \
	src/audio_output/output.c \
	src/audio_output/intf.c \
	src/stream_output/stream_output.c \
zorglub's avatar
zorglub committed
439 440
	src/stream_output/announce.c \
	src/stream_output/sap.c \
441 442
	src/osd/osd.c \
	src/osd/osd_parser.c \
443 444
	src/osd/osd_text.c \
	src/osd/osd_widgets.c \
445
	src/network/acl.c \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
446 447 448 449
	src/network/getaddrinfo.c \
	src/network/io.c \
	src/network/tcp.c \
	src/network/udp.c \
450
	src/network/httpd.c \
451
	src/network/rootwrap.c \
452
	src/network/tls.c \
453
	src/misc/charset.c \
454
	src/misc/md5.c \
455
	src/misc/mtime.c \
456
	src/misc/block.c \
457 458
	src/misc/modules.c \
	src/misc/threads.c \
459
	src/misc/stats.c \
460
	src/misc/unicode.c \
461 462
	src/misc/cpu.c \
	src/misc/configuration.c \
463
	src/misc/image.c \
464
	src/misc/iso_lang.c \
465
	src/misc/iso-639_def.h \
466 467
	src/misc/messages.c \
	src/misc/objects.c \
Sam Hocevar's avatar
Sam Hocevar committed
468
	src/misc/variables.c \
469
	src/misc/error.c \
470
	src/misc/update.c \
471
	src/misc/vlm.c \
gbazin's avatar
gbazin committed
472
	src/misc/xml.c \
zorglub's avatar
zorglub committed
473
	src/misc/hashtables.c \
474
	src/misc/version.c \
475
	src/extras/libc.c \
zorglub's avatar
zorglub committed
476
	src/control/core.c \
zorglub's avatar
zorglub committed
477 478
	src/control/playlist.c \
	src/control/input.c \
zorglub's avatar
zorglub committed
479
	src/control/video.c \
zorglub's avatar
zorglub committed
480 481 482
	src/control/mediacontrol_core.c \
	src/control/mediacontrol_util.c \
	src/control/mediacontrol_audio_video.c \
483 484
	$(NULL)

485
# These should be distributed, but not compiled
zorglub's avatar
zorglub committed
486
EXTRA_DIST += src/control/mediacontrol_init.c src/control/mediacontrol_plugin.c
487

488 489 490 491 492 493 494
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) \
495
	$(NULL)
496 497 498 499 500

###############################################################################
# Building vlc
###############################################################################

Sam Hocevar's avatar
Sam Hocevar committed
501
bin_PROGRAMS = vlc
502

503
vlc_SOURCES = src/vlc.c
504

505 506
# Work around a bug in the arm-wince-pe linker
if HAVE_WINCE
507 508 509 510 511 512 513 514 515 516 517
vlc_WORKAROUNDLDFLAGS = $(LIB_libvlc)
endif

if BUILD_SHARED
### libvlc.so cannot be created into lib/
LIB_libvlc = libvlc$(LIBEXT)
LDFLAGS_libvlc =
#-Wl,-rpath $(libdir)
else
LIB_libvlc = lib/libvlc.a
LDFLAGS_libvlc = `$(VLC_CONFIG) --libs vlc builtin` 
518 519
endif

520 521
vlc_LDFLAGS = $(LDFLAGS_libvlc) $(vlc_WORKAROUNDLDFLAGS)
vlc_LDADD = $(LIB_libvlc) $(DATA_win32_rc) $(LIB_intl)
gbazin's avatar
gbazin committed
522 523
vlc_CFLAGS = `$(VLC_CONFIG) --cflags vlc`

524 525
# We use DEPENDENCIES_vlc instead of vlc_DEPENDENCIES because of an
# old automake-1.5 bug (automake/279).
526
DEPENDENCIES_vlc = $(LIB_libvlc) $(DATA_win32_rc) $(LIB_intl)
527

Sam Hocevar's avatar
Sam Hocevar committed
528
vlc$(EXEEXT): $(vlc_OBJECTS) $(DEPENDENCIES_vlc) stamp-builtin
529
	@rm -f vlc$(EXEEXT)
530
	@case `$(VLC_CONFIG) --linkage vlc builtin` in \
531 532 533 534
	  c++) cmd="$(CXXLINK)" ;; \
	  objc) cmd="$(OBJCLINK)" ;; \
	  c|*) cmd="$(LINK)" ;; \
	esac ; \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
535
	cmd="$$cmd $(vlc_OBJECTS) $(vlc_LDADD) $(vlc_LDFLAGS) $(LIBS)" ; \
536 537
	echo $$cmd ; \
	eval $$cmd
Eric Petit's avatar
Eric Petit committed
538

539
if HAVE_BEOS
540
DATA_noinst_beos = vlc-bundle
541
vlc-bundle: vlc
Sam Hocevar's avatar
Sam Hocevar committed
542 543 544
	rm -Rf $(top_builddir)/vlc-bundle ; mkdir -p $(top_builddir)/vlc-bundle
	cp $(top_builddir)/vlc $(top_builddir)/vlc-bundle/
	xres -o $(top_builddir)/vlc-bundle/vlc $(srcdir)/share/vlc_beos.rsrc
545 546
	for i in "" `$(VLC_CONFIG) --target plugin` ; do \
	  if test -n "$$i" ; then \
Sam Hocevar's avatar
Sam Hocevar committed
547 548
	    mkdir -p $(top_builddir)/vlc-bundle/plugins ; \
	    cp "$$i$(LIBEXT)" $(top_builddir)/vlc-bundle/plugins/ ; \
549 550
	  fi ; \
	done
Sam Hocevar's avatar
Sam Hocevar committed
551 552 553 554
	if test -d $(top_builddir)/extras/contrib/vlc-lib ; then \
	  mkdir -p $(top_builddir)/vlc-bundle/lib ; \
	  for i in $(top_builddir)/extras/contrib/vlc-lib/*.so ; do \
	    cp $$i $(top_builddir)/vlc-bundle/lib/ ; \
555 556
	  done ; \
	fi
Eric Petit's avatar
Eric Petit committed
557
	for i in $(ALL_LINGUAS); do \
Sam Hocevar's avatar
Sam Hocevar committed
558 559 560
	  mkdir -p "$(top_builddir)/vlc-bundle/locale/$$i/LC_MESSAGES" ; \
	  cp "$(top_builddir)/po/$$i.gmo" \
	    "$(top_builddir)/vlc-bundle/locale/$$i/LC_MESSAGES/vlc.mo" || true ; \
Eric Petit's avatar
Eric Petit committed
561
	done
Sam Hocevar's avatar
Sam Hocevar committed
562
	find $(top_builddir)/vlc-bundle -type f -exec mimeset -f "{}" \;
563 564
endif

565
# Install the symlinks and shared libvlc
566
install-exec-local:
Sam Hocevar's avatar
Sam Hocevar committed
567
	for i in "" $(ALIASES) ; do if test -n "$$i" ; then \
Sam Hocevar's avatar
Sam Hocevar committed
568
	  rm -f "$(DESTDIR)$(bindir)/$$i" && \
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
569
	  ln -sf vlc "$(DESTDIR)$(bindir)/$$i" ; \
570
	fi ; done
571
	test -z "$(DATA_noinst_libvlc)" || $(INSTALL_PROGRAM) "$(DATA_noinst_libvlc)" "$(DESTDIR)$(libdir)"
572

573 574 575 576 577
# the opposite of install-{data,exec}-local
uninstall-local:
	for i in "" $(ALIASES) ; do if test -n "$$i" ; then \
	  rm -f "$(DESTDIR)$(bindir)/$$i" ; \
	fi ; done
578
	test -z "$(DATA_noinst_libvlc)" || rm -f "$(DESTDIR)$(libdir)/$(DATA_noinst_libvlc)"
579

580 581
if HAVE_DARWIN
# Create the MacOS X app
hartman's avatar
hartman committed
582
vlc_app_DATA = VLC.app
583
vlc_appdir = $(bindir)
584 585 586 587 588 589 590 591 592
# VLC-release.app is the old VLC.app target
VLC-release.app: vlc
	@if test -e "$(top_builddir)/tmp"; then \
	  echo "Error: please remove $(top_builddir)/tmp, it is in the way"; \
	  false; \
	else \
	  echo "OK."; mkdir -p "$(top_builddir)/tmp/extras"; \
	fi
	rm -Rf $(top_builddir)/VLC-release.app
hartman's avatar
hartman committed
593
	cp -R $(srcdir)/extras/MacOSX $(top_builddir)/tmp/extras
594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627
	for i in AUTHORS COPYING README.MacOSX.rtf THANKS; do \
	  cp "$(srcdir)/$$i" $(top_builddir)/tmp; \
	done
	mkdir -p $(top_builddir)/tmp/modules/audio_output
	mkdir -p $(top_builddir)/tmp/modules/gui/macosx
	for i in \
	    about.h \
	    about.m \
	    applescript.h \
	    applescript.m \
	    controls.h \
	    controls.m \
	    equalizer.h \
	    equalizer.m \
	    intf.h \
	    intf.m \
	    macosx.m \
	    misc.h \
	    misc.m \
	    open.h \
	    open.m \
	    output.h \
	    output.m \
	    playlist.h \
	    playlist.m \
	    playlistinfo.h \
	    playlistinfo.m \
	    prefs_widgets.h \
	    prefs_widgets.m \
	    prefs.h \
	    prefs.m \
	    vout.h \
	    voutqt.m \
	    voutgl.m \
628 629
	    wizard.h \
	    wizard.m \
630 631
	    extended.h \
	    extended.m \
Jean-Paul Saman's avatar
Jean-Paul Saman committed
632 633
	    bookmarks.h \
	    bookmarks.m \
634 635
	    sfilters.h \
	    sfilters.m \
636 637 638 639
	    vout.m; do \
	  cp "$(srcdir)/modules/gui/macosx/$$i" \
             $(top_builddir)/tmp/modules/gui/macosx; \
	done
hartman's avatar
hartman committed
640 641 642
	case $(target_triplet) in \
	  *darwin6*) cd $(top_builddir)/tmp/extras/MacOSX && pbxbuild -target vlc | grep -v '^\([ \t]\|$$\)'; \
	    cd ../../../; \
hartman's avatar
hartman committed
643
	    cp -R $(top_builddir)/tmp/extras/MacOSX/build/VLC.bundle \
hartman's avatar
hartman committed
644 645 646
	          $(top_builddir)/VLC-release.app;; \
	  *darwin7*) cd $(top_builddir)/tmp/extras/MacOSX && xcodebuild -target vlc | grep -v '^\([ \t]\|$$\)'; \
	    cd ../../../; \
hartman's avatar
hartman committed
647
	    cp -R $(top_builddir)/tmp/extras/MacOSX/build/VLC.bundle \
hartman's avatar
hartman committed
648
	          $(top_builddir)/VLC-release.app;; \
Felix Paul Kühne's avatar
Felix Paul Kühne committed
649
	  *darwin8*) cd $(top_builddir)/tmp/extras/MacOSX && xcodebuild -target vlc | grep -v '^\([ \t]\|$$\)'; \
hartman's avatar
hartman committed
650
	    cd ../../../; \
hartman's avatar
hartman committed
651
	    cp -R $(top_builddir)/tmp/extras/MacOSX/build/Default/VLC.bundle \
hartman's avatar
hartman committed
652 653
	          $(top_builddir)/VLC-release.app;; \
	esac
654 655 656 657 658 659 660 661 662 663 664
	rm -Rf $(top_builddir)/tmp
	$(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS
	$(INSTALL) $(top_builddir)/vlc \
		   $(top_builddir)/VLC-release.app/Contents/MacOS/VLC
	ln -sf ./VLC $(top_builddir)/VLC-release.app/Contents/MacOS/clivlc
	$(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/modules
	for i in "" `$(VLC_CONFIG) --target plugin` ; do \
	  if test -n "$$i" ; \
	    then $(INSTALL) "$$i$(LIBEXT)" \
			   "$(top_builddir)/VLC-release.app/Contents/MacOS/modules" ; \
	  fi ; done
665
	if test -d $(srcdir)/extras/contrib/vlc-lib; then \
666
	  mkdir -p $(top_builddir)/VLC-release.app/Contents/MacOS/lib ; \
667
	  for i in $(srcdir)/extras/contrib/vlc-lib/*.dylib ; do \
668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689
	    $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/lib/vlc_`basename $${i}` ; \
	  done ; \
	fi
	$(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share
	$(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share/http
	for i in $(srcdir)/share/http/* ; do \
	  $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/share/http/`basename $${i}` ; \
	done ; \
	$(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/locale
	for i in $(ALL_LINGUAS); do \
	  mkdir -p $(top_builddir)/VLC-release.app/Contents/MacOS/locale/$${i}/LC_MESSAGES ; \
	  cp $(srcdir)/po/$${i}.gmo $(top_builddir)/VLC-release.app/Contents/MacOS/locale/$${i}/LC_MESSAGES/vlc.mo || true ; \
	  mkdir -p $(top_builddir)/VLC-release.app/Contents/Resources/$${i}.lproj ; \
	  ln -sf ../English.lproj/InfoPlist.strings \
	      $(top_builddir)/VLC-release.app/Contents/Resources/$${i}.lproj ; \
	  ln -sf ../English.lproj/MainMenu.nib \
	      $(top_builddir)/VLC-release.app/Contents/Resources/$${i}.lproj ; \
	  ln -sf ../English.lproj/vlc.scriptTerminology \
	      $(top_builddir)/VLC-release.app/Contents/Resources/$${i}.lproj ; \
	done
	printf "APPLVLC#" >| $(top_builddir)/VLC-release.app/Contents/PkgInfo

Sam Hocevar's avatar
Sam Hocevar committed
690
VLC.app: vlc
Loïc Minier's avatar
Loïc Minier committed
691 692 693 694 695 696 697
	@if test -e "$(top_builddir)/tmp"; then \
	  echo "Error: please remove $(top_builddir)/tmp, it is in the way"; \
	  false; \
	else \
	  echo "OK."; mkdir -p "$(top_builddir)/tmp/extras"; \
	fi
	rm -Rf $(top_builddir)/VLC.app
hartman's avatar
hartman committed
698
	cp -R $(srcdir)/extras/MacOSX $(top_builddir)/tmp/extras
Loïc Minier's avatar
Loïc Minier committed
699 700 701 702 703 704 705 706 707 708 709 710
	for i in AUTHORS COPYING README.MacOSX.rtf THANKS; do \
	  cp "$(srcdir)/$$i" $(top_builddir)/tmp; \
	done
	mkdir -p $(top_builddir)/tmp/modules/audio_output
	mkdir -p $(top_builddir)/tmp/modules/gui/macosx
	for i in \
	    about.h \
	    about.m \
	    applescript.h \
	    applescript.m \
	    controls.h \
	    controls.m \
711 712
	    equalizer.h \
	    equalizer.m \
Loïc Minier's avatar
Loïc Minier committed
713 714 715 716 717 718 719 720 721 722 723
	    intf.h \
	    intf.m \
	    macosx.m \
	    misc.h \
	    misc.m \
	    open.h \
	    open.m \
	    output.h \
	    output.m \
	    playlist.h \
	    playlist.m \
724 725
	    playlistinfo.h \
	    playlistinfo.m \
726 727
	    prefs_widgets.h \
	    prefs_widgets.m \
Loïc Minier's avatar
Loïc Minier committed
728 729 730
	    prefs.h \
	    prefs.m \
	    vout.h \
hartman's avatar
hartman committed
731 732
	    voutqt.m \
	    voutgl.m \
733 734
	    wizard.h \
	    wizard.m \
735 736
	    extended.h \
	    extended.m \
Jean-Paul Saman's avatar
Jean-Paul Saman committed
737 738
	    bookmarks.h \
	    bookmarks.m \
739 740
	    sfilters.h \
	    sfilters.m \
Loïc Minier's avatar
Loïc Minier committed
741 742 743 744
	    vout.m; do \
	  cp "$(srcdir)/modules/gui/macosx/$$i" \
             $(top_builddir)/tmp/modules/gui/macosx; \
	done
hartman's avatar
hartman committed
745 746 747
	case $(target_triplet) in \
	  *darwin6*) cd $(top_builddir)/tmp/extras/MacOSX && pbxbuild -target vlc | grep -v '^\([ \t]\|$$\)'; \
	    cd ../../../; \
hartman's avatar
hartman committed
748
	    cp -R $(top_builddir)/tmp/extras/MacOSX/build/VLC.bundle \
hartman's avatar
hartman committed
749 750 751
	          $(top_builddir)/VLC.app;; \
	  *darwin7*) cd $(top_builddir)/tmp/extras/MacOSX && xcodebuild -target vlc | grep -v '^\([ \t]\|$$\)'; \
	    cd ../../../; \
hartman's avatar
hartman committed
752
	    cp -R $(top_builddir)/tmp/extras/MacOSX/build/VLC.bundle \
hartman's avatar
hartman committed
753
	          $(top_builddir)/VLC.app;; \
Felix Paul Kühne's avatar
Felix Paul Kühne committed
754
	  *darwin8*) cd $(top_builddir)/tmp/extras/MacOSX && xcodebuild -target vlc | grep -v '^\([ \t]\|$$\)'; \
hartman's avatar
hartman committed
755
	    cd ../../../; \
hartman's avatar
hartman committed
756
	    cp -R $(top_builddir)/tmp/extras/MacOSX/build/Default/VLC.bundle \
hartman's avatar
hartman committed
757 758
	          $(top_builddir)/VLC.app;; \
	esac
Loïc Minier's avatar
Loïc Minier committed
759 760 761 762
	rm -Rf $(top_builddir)/tmp
	$(INSTALL) -d $(top_builddir)/VLC.app/Contents/MacOS
	$(INSTALL) $(top_builddir)/vlc \
		   $(top_builddir)/VLC.app/Contents/MacOS/VLC
hartman's avatar
hartman committed
763
	ln -sf ./VLC $(top_builddir)/VLC.app/Contents/MacOS/clivlc
Loïc Minier's avatar
Loïc Minier committed
764
	$(INSTALL) -d $(top_builddir)/VLC.app/Contents/MacOS/modules
Sam Hocevar's avatar
Sam Hocevar committed
765
	for i in "" `$(VLC_CONFIG) --target plugin` ; do \
Loïc Minier's avatar
Loïc Minier committed
766
	  if test -n "$$i" ; \
767
	    then ln -sfn "`pwd`/$$i$(LIBEXT)" \
Loïc Minier's avatar
Loïc Minier committed
768
			   "$(top_builddir)/VLC.app/Contents/MacOS/modules" ; \
Sam Hocevar's avatar
Sam Hocevar committed
769
	  fi ; done
770
	if test -d $(srcdir)/extras/contrib/vlc-lib; then \
771
	  mkdir -p $(top_builddir)/VLC.app/Contents/MacOS/lib ; \
772
	  for i in $(srcdir)/extras/contrib/vlc-lib/*.dylib ; do \
773
	    ln -sfn `pwd`/$${i} $(top_builddir)/VLC.app/Contents/MacOS/lib/vlc_`basename $${i}` ; \
774
	  done ; \
775
	fi
776
	ln -sfn `pwd`/share $(top_builddir)/VLC.app/Contents/MacOS/
Loïc Minier's avatar
Loïc Minier committed
777
	$(INSTALL) -d $(top_builddir)/VLC.app/Contents/MacOS/locale
778
	for i in $(ALL_LINGUAS); do \
Loïc Minier's avatar
Loïc Minier committed
779
	  mkdir -p $(top_builddir)/VLC.app/Contents/MacOS/locale/$${i}/LC_MESSAGES ; \
780
	  ln -sfn `pwd`/po/$${i}.gmo $(top_builddir)/VLC.app/Contents/MacOS/locale/$${i}/LC_MESSAGES/vlc.mo || true ; \
Loïc Minier's avatar
Loïc Minier committed
781 782 783 784 785
	  mkdir -p $(top_builddir)/VLC.app/Contents/Resources/$${i}.lproj ; \
	  ln -sf ../English.lproj/InfoPlist.strings \
	      $(top_builddir)/VLC.app/Contents/Resources/$${i}.lproj ; \
	  ln -sf ../English.lproj/MainMenu.nib \
	      $(top_builddir)/VLC.app/Contents/Resources/$${i}.lproj ; \
786
	done
Loïc Minier's avatar
Loïc Minier committed
787
	printf "APPLVLC#" >| $(top_builddir)/VLC.app/Contents/PkgInfo
788 789 790
endif

if HAVE_WIN32
791
DATA_win32_rc = $(noinst_share_vlc_win32_rc_DATA)
792 793 794
noinst_share_vlc_win32_rc_DATA = share/vlc_win32_rc.$(OBJEXT)
noinst_share_vlc_win32_rcdir = $(libdir)
share/vlc_win32_rc.$(OBJEXT): share/vlc_win32_rc.rc
795
	$(WINDRES) -DVERSION=$(VERSION) -DVERSION_NUMBER=`echo $(VERSION).0.0.0 | sed 's/\([0-9]*\)[^.]*\.*\([0-9]*\)[^.]*\.*\([0-9]*\)[^.]*\.*\([0-9]*\).*/\1,\2,\3,\4/'` --include-dir $(srcdir)/share -i $< -o $@
796 797
endif

hartman's avatar
hartman committed
798

799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816
###############################################################################
# Building specific source packages
###############################################################################

dist-woody: distdir
	$(remove_distdir_woody)
	mv $(distdir) $(PACKAGE)-woody-$(VERSION)
	$(srcdir)/toolbox --make-woody $(PACKAGE)-woody-$(VERSION)
	$(AMTAR) chof - $(PACKAGE)-woody-$(VERSION) \
	  | GZIP=$(GZIP_ENV) gzip -c >$(PACKAGE)-woody-$(VERSION).tar.gz
	$(remove_distdir_woody)

remove_distdir_woody = \
  { test ! -d $(PACKAGE)-woody-$(VERSION) \
    || { find $(PACKAGE)-woody-$(VERSION) -type d ! -perm -200 \
           -exec chmod u+w {} ';' \
         && rm -fr $(PACKAGE)-woody-$(VERSION); }; }

817 818 819 820 821 822 823
###############################################################################
# Building architecture-specific binary packages
###############################################################################

# XXX: this rule is probably only useful to you if you have exactly
# the same setup as me. Contact sam@zoy.org if you need to use it.
#
824
package-win32-base-debug:
825
# Check that tmp isn't in the way
826 827
	@if test -e "$(top_builddir)/vlc-${VERSION}"; then \
	  echo "Error: please remove $(top_builddir)/vlc-${VERSION}, it is in the way"; \
Sam Hocevar's avatar
Sam Hocevar committed
828
	  false; \
829
	else \
830
	  echo "OK."; mkdir -p "$(top_builddir)/vlc-${VERSION}"; \
831
	fi
832

833
# Copy relevant files
834 835 836 837
	cp "$(srcdir)/vlc.win32.nsi" "$(top_builddir)/vlc-${VERSION}/"
	cp "$(top_builddir)/vlc$(EXEEXT)" "$(top_builddir)/vlc-${VERSION}/"
	cp "$(top_srcdir)/vlc.exe.manifest" "$(top_builddir)/vlc-${VERSION}/"
	$(STRIP) "$(top_builddir)/vlc-${VERSION}/vlc$(EXEEXT)"
838

gbazin's avatar
 
gbazin committed
839
	for file in AUTHORS MAINTAINERS THANKS NEWS COPYING README ; \
840 841
	  do sed 's/@/_AT_/' < "$(srcdir)/$$file" > "$(top_builddir)/vlc-${VERSION}/$${file}.txt" ; \
	  unix2dos "$(top_builddir)/vlc-${VERSION}/$${file}.txt" ; done
gbazin's avatar
 
gbazin committed
842

843
	mkdir -p "$(top_builddir)/vlc-${VERSION}/plugins"
Sam Hocevar's avatar
Sam Hocevar committed
844
	for i in "" `$(VLC_CONFIG) --target plugin` ; do \
Sam Hocevar's avatar
Sam Hocevar committed
845
	  if test -n "$$i" ; then \
846 847
	    $(INSTALL) "$(top_builddir)/$$i$(LIBEXT)" \
            "$(top_builddir)/vlc-${VERSION}/plugins/" ; \
Sam Hocevar's avatar
Sam Hocevar committed
848
	  fi ; done
gbazin's avatar
 
gbazin committed